如何使用而不是reduce()获得相同的结果?

时间:2018-07-26 19:16:27

标签: javascript

let arr = [2,4,3,6,90]

let res = arr.reduce((a, b) => {
    return a + b
})

console.log(res);

我通过 reduce()使用此功能。 现在,我想通过在纯javascript 中使用另一种方式来获得相同的结果。

function myReduce(arr, callBack) {

    let newReduce;

    for (let i = 0; i < arr.length; i++) {

        if (newReduce === null) {

        }

    }

}

我试图用这段代码来做,但是我无法完成它。 你能告诉我一些方法吗?我怎么能得到这个结果?

2 个答案:

答案 0 :(得分:0)

我相信这里的问题是,如何在不使用reduce运算符的情况下执行reduce操作。

reduce操作的功能是接受多个数组值并将其减少或煮沸到单个值。 示例:

[1,2,3].reduce((total,num)=>{
 return total + num
}, 0);

这将返回6。0是您要开始的初始值。

在这种情况下,代码看起来像这样-

    let arr = [2,4,3,6,90];
    let total = 0;

    for ( let i = 0; i < arr.length; i++ ){
    total += arr[i];
    }

    console.log(total);

答案 1 :(得分:0)

最后,我完成了使用回调函数创建自己的reduce()的工作。 我尝试做一些不同的事情,幸运的是,我得到了结果。这是我的代码。感谢您分享您的知识

let arr = [2,4,3,6,90]

function myReduce(arr, callBack) {

    let newReduce;

    for (let i = 0; i < arr.length; i++) {

        if (newReduce === undefined) {
            newReduce = arr[i]
        }else {
            newReduce = callBack(newReduce, arr[i])
        }

    }

    return newReduce

}

let res = myReduce(arr, function (a, b) {
    return a + b
})

res

您想请我投票...