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) {
}
}
}
我试着用这段代码来做,但是我不能让它工作。所以你能告诉我一些方法吗?怎样才能得到这个结果呢?
发布于 2018-07-27 03:29:16
我认为这里的问题是,如何在不使用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);
发布于 2018-07-27 03:50:42
最后,我完成了这项工作来创建我自己的带有回调函数的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
请投票给我的问题..。
https://stackoverflow.com/questions/51546090
复制相似问题