Проблема: реализовать метод массива, который может работать как 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]