STARTPOINT_DEV Telegram 120
Я уже давно работаю во фронтенде, но все равно периодически забываю о том, что в JavaScript появляются новые удобные инструменты. Так, я заметила, что упускаю из виду Map и Set.

Для тех, кто так же, как и я, забывает про них, напомню:

- Map похож на обычный объект, с той разницей, что в качестве ключа в нем можно использоваться вообще любой тип, в том числе функцию или объект
- а Set позволяет хранить множество уникальных значений, то есть сколько бы раз вы не выполнили set.add() с одним и тем же значением, фактически оно будет добавлено только один раз

У обоих сущностей есть метод has(), который позволяет проверять наличие ключа (в случае Map) или значения (в случае Set).

Если мы хотим добавить элемент, когда его нет, или удалить, когда он есть, то вот как можно было бы написать это в обычном массиве:


const index = allValues.indexOf(currentValue);

if (index === -1) {
allValues.push(currentValue);
} else {
allValues.splice(index, 1);
}


А вот как в Set:


if (allValues.has(currentValue)) {
allValues.add(currentValue);
} else {
allValues.delete(currentValue);
}


Согласитесь, что второй пример читается гораздо понятнее, уже не говоря о производительности.

Все это наводит меня на мысль, что, хоть в разработке и важно следить за обновлениями, но не зазорно упускать какие-то моменты. Главное - хотя бы постфактум замечать и использовать это.
🔥3



tgoop.com/startpoint_dev/120
Create:
Last Update:

Я уже давно работаю во фронтенде, но все равно периодически забываю о том, что в JavaScript появляются новые удобные инструменты. Так, я заметила, что упускаю из виду Map и Set.

Для тех, кто так же, как и я, забывает про них, напомню:

- Map похож на обычный объект, с той разницей, что в качестве ключа в нем можно использоваться вообще любой тип, в том числе функцию или объект
- а Set позволяет хранить множество уникальных значений, то есть сколько бы раз вы не выполнили set.add() с одним и тем же значением, фактически оно будет добавлено только один раз

У обоих сущностей есть метод has(), который позволяет проверять наличие ключа (в случае Map) или значения (в случае Set).

Если мы хотим добавить элемент, когда его нет, или удалить, когда он есть, то вот как можно было бы написать это в обычном массиве:


const index = allValues.indexOf(currentValue);

if (index === -1) {
allValues.push(currentValue);
} else {
allValues.splice(index, 1);
}


А вот как в Set:


if (allValues.has(currentValue)) {
allValues.add(currentValue);
} else {
allValues.delete(currentValue);
}


Согласитесь, что второй пример читается гораздо понятнее, уже не говоря о производительности.

Все это наводит меня на мысль, что, хоть в разработке и важно следить за обновлениями, но не зазорно упускать какие-то моменты. Главное - хотя бы постфактум замечать и использовать это.

BY Настя Котова // Frontend & Node.js


Share with your friend now:
tgoop.com/startpoint_dev/120

View MORE
Open in Telegram


Telegram News

Date: |

Read now Telegram Android app: Open the chats list, click the menu icon and select “New Channel.” As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” Add up to 50 administrators Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value.
from us


Telegram Настя Котова // Frontend & Node.js
FROM American