Создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.

Спецификация: 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 внутри функции обратного вызова:

Выполнить код »

Комментарии

пожелания к комментариям…
  • Приветствуются комментарии, соответствующие теме урока: вопросы, ответы, предложения.
  • Одну строчку кода оборачивайте в тег <code>, несколько строчек кода — в теги <pre><code>...ваш код...</code></pre>.
  • Допускаются ссылки на онлайн-песочницы (codepen, plnkr, JSBin и др.).