Метод map() применяет колбек функцию последовательно к каждому элементу коллекции и помещает на место элемента результат выполнения колбека. Таким образом map() преобразовывает массив. Стоит сказать, что этот метод всегда возвращает новый массив.
Метод map() итерируется по массиву, вызывает на каждом элементе массива функцию-колбэк, добавляет результат вызова колбэка в новый массив, который возвращается в конце.
Вот, как метод map() устроен внутри:
// исходный массив
const array = [1, 2, 3, 4, 5];
// хотим каждый элемент массива умножить на 2
const callback = (num) => num * 2;
const myMap = (arr, cb) => {
// создаем новый массив
const result = [];
// проходим по каждому элементу массива
for (let i = 0; i < arr.length; i += 1) {
// вызываем функцию-колбэк на каждом элементе массива
const current = cb(arr[i]);
// результат вызова добавляем в новый массив
result.push(current);
}
// возвращаем новый массив
return result;
};
console.log(myMap(array, callback)); // => [ 2, 4, 6, 8, 10 ]