使用array.prototype时如何访问数组

时间:2019-02-01 11:31:12

标签: javascript ecmascript-6

我正在考虑尝试自己实现map函数。

到目前为止,我的代码如下:

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

function double(arg) {
    return arg * 2
};

const x = [1, 2, 3].mapz(double);
console.log(x); // This should be [2, 3, 6];

我想知道如何在mapz方法中访问要映射的数组?

4 个答案:

答案 0 :(得分:2)

您可以使用this访问。

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

function double(arg) {
    return arg * 2;
}

const x = [1, 2, 3].mapz(double);
console.log(x);

答案 1 :(得分:1)

使用this键来访问函数内部的数组:

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

const x = [1, 2, 3].mapz(value => value * 2);
console.log(x);

答案 2 :(得分:0)

您可以简单地使用this

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

答案 3 :(得分:0)

您可以使用this关键字来访问数组

Array.prototype.mapz = function (callback) {
    let arr = []
    for (let i = 0; i < this.length; i++) {
       arr.push(callback(this[i]));
    }
    return arr;
};
function double(arg) {
    return arg * 2
};
const x = [1, 2, 3,5].mapz(double);
console.log(x)