filter() reduce()

Array.prototype.myFilter = function (fn) {
    let result = [];
    let arr = Array.prototype.slice.call(this);
    for (let i = 0; i < arr.length; i++) {
        if (fn(arr[i], i, this))
            result.push(arr[i]);
    }
    return result;
}
Array.prototype.myReduce = function (fn, init) {
    let total = init;
    let arr = Array.prototype.slice.call(this);
    for (let i = 0; i < arr.length; i++) {
        total = fn(total, arr[i], i, this);
    }
    return total;
}