编辑代码

//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
Array.prototype.map2 = function(fn) {
    // map 给每个元素执行一个函数并返回一个新数组
    return this.reduce((prev, curr) => {
        prev.push(fn.call(this, curr))
        return prev
    }, [])
}

const a = [1,2,3,4].map2(item => item * 2)
console.log(a)

Array.prototype.filter2 = function(fn) {
    return this.reduce((prev, curr) => {
        if (fn.call(this, curr)) {
            prev.push(fn.call(this, curr))
        }
        return prev
    }, [])
}
const b = [1,2,3,4].filter2(item => {
    if (item !== 1) {
        return item * 9
    }
})
console.log(b)

const a = [1,2,3,4].reduce((prev, curr) => {
    return prev + curr
}, 0)
console.log(a)