forEach для имитации функции .map () - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь имитировать array.map(), используя forEach ().

var map = function () {
  var empMap = [];
  numbers.forEach(function (number) {
    empMap.push(number);
    console.log('empMap', empMap);
  });
  return(empMap);
}

var numbers = [1, 2, 3];
//implement this line

var doubles = map(numbers, function (number) {
  return number * 2;
});
console.log(doubles); // [2, 4, 6]

Итак, у меня есть этот массив numbers со значениями, и у меня есть свой собственный map function для итерации по массиву изатем я помещаю значения в пустой массив empMap

позже, я вызываю эту функцию карты и умножаю каждое значение на 2 и распечатываю его.

Я должен получить выходные данные типа doubleкак [2, 4, 6] вместо этого я получаю [1,2,3].Не знаю, где я ошибаюсь.

Это [codepen] 1 для того же.

1 Ответ

0 голосов
/ 30 января 2019

Вам необходимо передать массив и обратный вызов в качестве аргументов, а затем фактически использовать обратный вызов.

var map = function (array, callback) {
  var empMap = [];

  array.forEach(function (number) {
    empMap.push(callback(number))
  });

  return(empMap);
}

var numbers = [1, 2, 3];

var doubles = map(numbers, function (number) {
  return number * 2;
});

console.log(doubles); // [2, 4, 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...