Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Методmap()
создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
arr.map(callback[, thisArg])
callback Функция, создающая элемент в новом массиве, принимает три аргумента:
thisArg Необязательный параметр. Значение, используемое в качестве this при вызове функции callback.
Метод map
вызывает переданную функцию callback
один раз для каждого элемента, в порядке их появления и конструирует новый массив из результатов её вызова. Функция callback
вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, значения по которым равны undefined, то есть, которые были удалены или которым значения никогда не присваивались.
Функция callback
вызывается с тремя аргументами: значением элемента, индексом элемента и массивом, по которому осуществляется проход.
Метод map не изменяет массив, для которого он был вызван (хотя функция callback может это делать).
Следующий код берёт массив чисел и создаёт новый массив, содержащий квадратные корни чисел из первого массива.
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// теперь roots равен [1, 2, 3], а numbers всё ещё равен [1, 4, 9]
Следующий код показывает, как работает отображение, когда функция требует один аргумент. Аргумент будет автоматически присваиваться каждому элементу массива, когда map проходит по оригинальному массиву.
var numbers = [1, 4, 9];
var doubles = numbers.map(function(num) {
return num * 2;
});
// теперь doubles равен [2, 8, 18], а numbers всё ещё равен [1, 4, 9]
Этот пример показывает, как использовать map
на объекте строки String для получения массива байт в кодировке ASCII, представляющего значения символов:
var map = Array.prototype.map;
var a = map.call('Hello World', function(x) { return x.charCodeAt(0); });
// теперь a равен [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]