Проблема: реализовать метод массива, который может работать как map
. Этот метод должен иметь возможность принимать массив, перебирать его, применять обратный вызов и использовать возвращаемое значение, чтобы поместить его в тот же индекс в новом массиве.
Пример:
let arr = [1, 2, 3]; let newArray = arr.map((value) => value * value); // => [1, 4, 9]
Анализ:
- Для этого просто понадобится цикл, который перебирает каждое значение и применяет заданный обратный вызов. Он также должен передать некоторые параметры обратному вызову, например
element, index, array
- Должен вернуть новый массив.
Реализация
- Создайте цикл for или используйте forEach, где он вызывает функцию и передает необходимые параметры.
- Возвращаемое значение обратного вызова необходимо поместить в новый массив.
Код:
function map(array, callback) { const newArray = []; array.forEach((element, index) => { newArray.push(callback(element, index, array)); }); return newArray; }
Тесты:
console.log(map([], (value)=> value * value)); // => [] console.log(map([1,2,3], (value)=> value * value)); // => [1, 4, 9]