как получить доступ к массиву при использовании array.prototype - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь реализовать функцию 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 голосов
/ 01 февраля 2019

Вы можете использовать ключевое слово 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)
0 голосов
/ 01 февраля 2019

Используйте клавиатуру 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);
0 голосов
/ 01 февраля 2019

Вы можете просто использовать this

Array.prototype.mapz = function (callback) {
    let arr = []
    for (let i = 0; i < this.length; i++) {
       arr.push(callback(this[i]));
    }
    return arr;
};
0 голосов
/ 01 февраля 2019

Вы можете получить доступ с помощью 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...