В двух словах
map()
— это встроенная функция Array в JavaScript. Он помогает нам перебирать массив, вызывает предоставленный callback()
для каждого элемента и возвращает новый массив с новыми результатами.
Параметры
map()
принимает в качестве параметров
- текущий элемент — Текущий обрабатываемый элемент в массиве.
- индекс текущего элемента — индекс текущего обрабатываемого элемента в массиве.*Необязательно
- исходный массив — был вызван массив map
. *Необязательно
- thisArgs — значение, используемое как this
при выполнении callback
.*Необязательно
Возвращаемое значение
map()
возвращает новый массив, каждый элемент которого является результатом функции callback
. Поскольку map()
возвращает новый массив, он не изменяет существующий.
Подробно
callback
вызывается с тремя аргументами: значением элемента, индексом элемента и отображаемым объектом массива.- Если указан параметр
thisArg
, он будет использоваться как значение обратного вызоваthis
. В противном случае значениеundefined
будет использоваться как значениеthis
. map
не изменяет массив, для которого он вызывается (хотяcallback
при вызове может это сделать).- Он не вызывается для отсутствующих элементов массива -
индексы, которые никогда не устанавливались;
индексы, которые были удалены - если массив, к которому был вызван
map
, является разреженным, результирующий массив также будет разреженным, сохраняя те же индексы пустыми
Выполнение
Со всей известной нам информацией о методе map()
мы можем реализовать нашу пользовательскую функцию map()
.
Вывод
map()
не сложная функция для реализации, но она может быть очень сложной. Просто нужно помнить о потребностях и ограничениях, которые у него есть.