Метод map позволяет применить заданную функцию для каждого элемента массива. При этом метод не изменяет исходный массив, а возвращает измененный.

Метод в параметре получает функцию, которая выполнится для каждого элемента массива. В эту функцию можно передавать 3 параметра.

Если эти параметры есть (они не обязательны), то в первый положится элемент массива, во второй - его номер в массиве (индекс), а в третий - сам массив.

См. также forEach, filter, some, every, reduce, reduceRight.

Синтаксис

var новый массив = массив.map(function(элемент, индекс, массив) {
	код
	return измененный элемент;
});

Примеры

Пример

Создадим массив, каждый элемент которого вдвое больше соответствующего элемента начального массива:

var arr = [5, 1, 2, 4];

var newArr = arr.map(function(elem) {
	return elem * 2;
});

console.log(newArr);

Результат выполнения кода:

[10, 2, 4, 8]

Пример

Создадим массив, каждый элемент которого получается так - значение элемента умножается на его порядковый номер в массиве:

var arr = [1, 2, 3, 4, 5];

var newArr = arr.map(function(elem, index) {
	return elem * index;
});

console.log(newArr);

Результат выполнения кода (первый элемент: 1*0, второй: 2*1, третий: 3*2, четвертый: 4*3, пятый: 5*4):

[0, 2, 6, 12, 20]

Пример

При необходимости в третий параметр можно передать сам массив:

var arr = [1, 2, 3, 4, 5];

var newArr = arr.map(function(elem, index, arr) {
	тут будет доступен массив arr
});