手写实现数组array的reduce方法

 let arr = [2,4,6];
    function gerReduce(arr, fn, pre) {
        //遍历数组
        arr.forEach((item, index) => {
            //第一个时候判断初始值有没有
            if (index == 0) {
                if (pre) {
                    pre = fn(pre, item)
                } else if (!pre) {
                    pre = item;
                }
            }
            else {
                pre = fn(pre, item)
            }
        })
        return pre
    }
    // gerReduce(arr,function(pre,item){
    //     return pre+=item
    // },10)
    console.log(gerReduce(arr, function (pre, item) {
        return pre *= item //reduce内的方法
    },2))//96

你可能感兴趣的:(js原生,数组方法实现,高阶函数)