访问回调array.protoype中的参数

时间:2019-02-01 12:41:33

标签: javascript ecmascript-6

我正在实现地图功能。要访问我要映射的数组,我根据先前的问题使用了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 :(得分:3)

您需要将索引作为回调的第二个参数

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);

答案 1 :(得分:1)

您只需要在回调函数中添加另一个参数即索引即可。

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);