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