Будни разработчика
14.6K subscribers
1.14K photos
319 videos
7 files
1.96K links
Блог Lead JS-разработчика из Хельсинки
Автор: @bekharsky

По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv

Чат: https://t.me/htmlshitchat

№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
Download Telegram
#фишка дня

Мне тут сообщили, что в 92 Хром и в 90 Фаерфокс с пылу с жару завезли метод Array.prototype.at(). Передаёте в at индекс элемента массива и получаете его значение, собственно.

Я сижу и честно говоря не очень понимаю, зачем он так сильно всем нужен.

Если коротко, то при передаче положительного числа, он работает точно так же, как и . Т. е. arr[2] и arr.at(2) оба вернут третий элемент.

Веселье заключается в том, что at поддерживает отрицательные значения индекса. И вы правильно догадались, они отсчитывают значения элементов с хвоста.

Последний элемент имеет индекс -1.

Т. о. то, что раньше писалось как arr[arr.length - 1] теперь пишется как arr.at(-1). Ну и так далее.

Собеседник сказал, что от первого варианта пахнет языком Си 🧐. По-моему так от обоих.

А каково ваше мнение?

#js #array
#фишка дня

Как удалить дубликаты из массива?

Да просто используйте встроенный объект Set. Суть, математическое множество.

Как правильно заметили в комментариях, в современном JS/TS это превращается в:


const uniqCities = […new Set(cities)]


#js #set #array #duplicates
#справочник дня

Знаете, какой мой любимый вопрос на собеседовании?

const a = [2, 3, 1];
const b = a.sort();
console.log(a);


Сначала ответьте, а потом идите сюда: https://doesitmutate.xyz/

Вы удивитесь какое число людей отвечают неверно и/или не знают, какие методы массивов мутируют исходный массив.

Иногда можно и нарваться.

#js #array #mutation
#фишка дня

Новинки ESNext в stage 3 (короче, почти-почти): новые методы массива groupBy и groupByToMap.

На скриншоте прекрасно видно, для чего нужны. Больше не надо изголяться с reduce.

Уже доступны в полифилле core-js: https://github.com/zloirock/core-js#array-grouping

Скоро залетят и в TypeScript.

#js #array #esnext
#фишка дня

Один из моих любимых вопросов на собеседованиях был про поведение Array.prototype.sort().

Вы не представляете какое количество людей просто не задумывается о том, что sort — мутирующий метод, то есть он возвращает не новый массив, а ссылку на изменённый текущий.

Да, в большинстве случаев ничего страшного не произойдёт, но в остальных — будет неприятно.

Так вот, к чему это я. С выходом Firefox 115 в июле этого года мы получили иммутабельные методы работы с массивами во всех браузерах:
.toReversed()
.toSorted()
.toSpliced()
.with()

Если что, with — это про замену элементов по индексам.

Есть и полифиллы на core-js, так что без работы никто не останется.

И это прекрасно.

#js #array #sort
#фишка дня

Один из моих любимых вопросов на собеседованиях был про поведение Array.prototype.sort().

Вы не представляете какое количество людей просто не задумывается о том, что sort — мутирующий метод, то есть он возвращает не новый массив, а ссылку на изменённый текущий.

Да, в большинстве случаев ничего страшного не произойдёт, но в остальных — будет неприятно.

Так вот, к чему это я. С выходом Firefox 115 в июле этого года мы получили иммутабельные методы работы с массивами во всех браузерах:
.toReversed()
.toSorted()
.toSpliced()
.with()


Если что, with — это про замену элементов по индексам.

Есть и полифиллы на core-js, так что без работы никто не останется.

И это прекрасно.

#js #array #sort #бородач
#фишка дня

Как получить последний элемент массива?

Можно посчитать длину массива минус один, чтобы получить нужный индекс.

Можно сделать array.slice(-1) и взять нулевой элемент получившегося массива.

А можно воспользоваться сравнительно новым методом Array.prototype.at! Ну, уже два года как в продакшене. И полифилл давно есть.

Весьма удобно, я считаю.

#javascript #array
#фишка дня

Один из моих любимых вопросов на собеседованиях был про поведение Array.prototype.sort().

Вы не представляете какое количество людей просто не задумывается о том, что sort — мутирующий метод, то есть он возвращает не новый массив, а ссылку на изменённый текущий.

Да, в большинстве случаев ничего страшного не произойдёт, но в остальных — будет неприятно.

Так вот, к чему это я. С выходом Firefox 115 в июле 2023 года мы получили иммутабельные методы работы с массивами во всех браузерах:
.toReversed()
.toSorted()
.toSpliced()
.with()


Если что, with — это про замену элементов по индексам.

Есть и полифиллы на core-js, так что без работы никто не останется.

И это прекрасно.

#js #array #sort #бородач