Array.map()
Создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
Спецификация: ECMAScript 5.1 (ECMA-262)Синтаксис
array.map(function callback(currentValue, index, arr), thisValue)
Параметры
- searchElement
- Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве, принимает три аргумента:
- currentValue – значение текущего элемента
- index – индекс массива текущего элемента.
- arr – массив, к которому принадлежит текущий элемент (по которому происходит проход).
- thisValue
- Необязательный параметр. Объект, на который может ссылаться ключевое слово
this
внутри функции обратного вызова. Если параметрthisValue
не используется, то в качестве значенияthis
будет использоватьсяundefined
(в конечном итоге, значениеthis
, наблюдаемое из функцииcallback
, определяется согласно обычным правилам определенияthis
, видимого из функции).
Возвращаемое значение
Новый массив, в котором каждый элемент является возвращаемым значением функции обратного вызова для связанного исходного элемента массива.
Описание
Метод map() позволяет вызвать переданную функцию один раз для каждого элемента массива, формируя новый массив из результатов вызова этой функции.
Диапазон элементов, обрабатываемых с помощью метода map()
устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.
Если существующие элементы массива изменяются функцией callback
, их значения, переданные в функцию, будут значениями на тот момент времени, когда метод map()
посетит их. Удалённые элементы посещены не будут. Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод map()
посещает их. Если элементы удаляются до их посещения, то такие элементы посещены не будут.
Примечание: Функция callback
вызывается только для индексов массива, имеющих присвоенные значения, включая undefined
. Она не вызывается для пропущенных элементов массива, то есть для индексов, которые никогда не были заданы, которые были удалены или которым никогда не было присвоено значение.
Примечание: Метод map()
не изменяет массив, для которого он был вызван (хотя функция callback
может это делать).
Следующий код берёт массив чисел и создаёт новый массив, содержащий элементы первого массива увеличенные в два раза:
Примеры
В следующем примере используется второй аргумент метода map(), который указывает на объект, на который может ссылаться ключевое слово this внутри функции обратного вызова:
Поддержка браузерами
Метод | |||||||
map | Да | Да | Да | Да | 1.5 | 9 | Да |
![Kwork.ru - услуги фрилансеров от 500 руб.](https://cdn.kwork.ru/images/partner/03.jpg)
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.