Array map(), filter() & reduce() Polyfill

Array.map() Polyfill

const array = [1,2,3,4,5];

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

let answer1 = array.map((element) => element * 2);
console.log("R1:", answer1);

let answer2 = array.map((element) => element * 2);
console.log("R2:", answer2);

Array.reduce() Polyfill

const array = [1,2,3,4];

Array.prototype.myReduce = function(callback, initial) {
    let accumulator = initial;
    
    for (let i = 0; i < this.length; i++) {
        if (accumulator) {
            if (accumulator !== undefined) {
                accumulator = callback(accumulator, this[i], i, this);
            }
        } else {
            accumulator = this[0];
        }
    }
    
    return accumulator;
}


const result1 = array.reduce(
    (accu, curr) => accu + curr
    , 0);
console.log("R1:", result1);

const result2 = array.myReduce((accu, curr) => accu + curr);
console.log("R2:", result2);