Функция map() — это встроенный в JavaScript метод, который используется для создания нового массива путем выполнения заданной операции над каждым элементом исходного массива. Функцию-прототип для `map()` можно записать следующим образом:
Array.prototype.myMap = function(callback) { let result = []; for(let i=0; i<this.length; i++) { result.push(callback(this[i], i, this)); } return result; }
В этой функции мы создали новый метод-прототип myMap() для объекта Array, который принимает функцию обратного вызова в качестве аргумента. Функция обратного вызова — это операция, которая будет выполняться над каждым элементом исходного массива.
Внутри функции мы инициализируем пустой массив с именем `result`, который будет содержать отображаемые значения. Затем мы перебираем каждый элемент исходного массива, используя цикл for. Для каждого элемента мы вызываем функцию обратного вызова с тремя аргументами: текущий элемент, его индекс и исходный массив. Функция «обратный вызов» возвращает сопоставленное значение, которое мы помещаем в массив «результат».
Наконец, мы возвращаем массив `result`, который содержит все сопоставленные значения.
Эту функцию-прототип можно использовать как встроенный метод `map()`, как показано ниже:
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.myMap(num => num * 2); console.log(doubled); // Output: [2, 4, 6, 8, 10]
В этом примере мы используем `myMap()`, чтобы удвоить каждый элемент массива `numbers` и сохранить результаты в новом массиве с именем `doubled`. Затем вывод выводится на консоль.