Какие методы массивов в JS надо знать
На начало 2023 года в джавскрипте в прототипе класса Array
лежит 40 свойств. Вот они:
>> Object.getOwnPropertyNames(Array.prototype)
['length', 'constructor', 'at', 'concat', 'copyWithin', 'fill', 'find', 'findIndex', 'lastIndexOf', 'pop', 'push', 'reverse', 'shift', 'unshift', 'slice', 'sort', 'splice', 'includes', 'indexOf', 'join', 'keys', 'entries', 'values', 'forEach', 'filter', 'flat', 'flatMap', 'map', 'every', 'some', 'reduce', 'reduceRight', 'toLocaleString', 'toString', 'with', 'toReversed', 'toSorted', 'toSpliced', 'findLast', 'findLastIndex']
Вместо length
и constructor
, которые не являются методами в привычном смысле слова, добавим методы group
/ groupToMap
, которые скоро появятся в стандарте [TC39 proposal] и уже поддерживаются в Safari.
Получается 40 методов. А сколько надо знать?
Из всех методов я ни разу не использовал в рабочих задачах только 7 методов: concat
, copyWithin
, keys
, values
, entries
, toLocaleString
и toString
. При этом concat
и values
использовал при прохождении собеседований.
Таким образом для работы вам понадобятся 33 метода. Естественно, не все они одинаково часто используются. Думаю, примерно в 25% случаев из всех это будет метод map
, а еще в 10% — метод filter
. Но уметь применять нужно все.
Для того, чтобы научиться использовать методы, у меня есть список задач с codewars. Задачи подобраны так, чтобы при решении использовались практически все из этих 29 методов. Эти задачи являются частью программы изучения фронтенда).
Список методов массивов в JavaScript
Перебирающие немутирующие методы массивов
- map
- filter
- every
- some
- flat
- flatMap
- reduce
- reduceRight
- group
- groupToMap
Немутирующие методы
- slice
- join
- toReversed
- toSorted
- toSpliced
- with
Мутирующие методы
- reverse
- sort
Обращение к элементам
- at
- forEach
Добавление и удаление элементов
- pop
- push
- shift
- unshift
- splice
- fill
Поиск элементов и индексов
- includes
- indexOf
- lastIndexOf
- find
- findLast
- findIndex
- findLastIndex
Редко используемые
- concat
- copyWithin
Очень-очень редко используемые
- keys
- values
- entries
- toLocaleString
- toString