доступ к аргументам в обратном вызове array.protoype - PullRequest
0 голосов
/ 01 февраля 2019

Я реализую функцию карты.Для доступа к массиву, который я отображаю, я использую this на основе вопроса, который у меня был ранее.Теперь мне интересно, как получить доступ к различным аргументам, передаваемым callback.Таким образом, в официальном методе map вы можете передать индекс.Я пытаюсь сделать это, но не знаю, как получить к нему доступ в моем пользовательском методе.

Array.prototype.mapz = function(callback) {
  const arr = [];
  for (let i = 0; i < this.length; i++) {
    arr.push(callback(this[i]))
  }
  return arr;
};

let x = [1, 12, 3].mapz((item, index) => {
  return item * 2;
})
console.log(x);

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вам нужно передать индекс в качестве второго параметра для обратного вызова

Array.prototype.mapz = function(callback) {
  const arr = [];
  for (let i = 0; i < this.length; i++) {
    arr.push(callback(this[i], i));
  }
  return arr;
};

let x = [1, 12, 3].mapz((item, index) => {
  console.log(index, item);
  return item * 2;
})
console.log(x);
0 голосов
/ 01 февраля 2019

Вам просто нужно добавить еще один аргумент в функцию обратного вызова, который является вашим индексом.

Array.prototype.mapz = function(callback) {
  const arr = [];
  for (let i = 0; i < this.length; i++) {
    arr.push(callback(this[i], i))
  }
  return arr;
};

let x = [1, 12, 3].mapz((item, index) => {
console.log(index);
  return item * 2;
})
console.log(x);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...