小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
发现JS中的循环有好多,如果让一下说出来,感觉有些会想不起来,本次花时间来梳理一下JS中循环语句。
本系列相关文章:
- 【循环系列】for循环和while循环
- 【循环系列】for in和forEach循环
- 【循环系列】之map循环
- 【循环系列】filter和some循环
- 【循环系列】every循环
本文是本系列第
6篇,关于reduce循环
reduce
reduce回调函数中接受四个参数:
第一个参数:total表示初始值, 或者上次累积计算结束后的返回值
第二个参数:当前值value
第三个参数:下标index
第四个参数:原数组
我们可以使用reduce计算数组的和或者阶层,如
let arr = [1,2,3,4,5,6,7,8,9,10];
let res = arr.reduce((total, cur, index, arr) =>{
return total+cur;
});
console.log(res);//55
为了看清楚,我们干脆直接打印出来四个参数来看看
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.reduce((total, cur, index, arr) => {
console.log(total, cur, index, arr);
return total + cur;
});
可以看出来,每一次的tatal其实就是上一次的循环执行的返回结果
下面来模拟实现_reduce
Array.prototype._reduce = function (fn, thisTo) {
let total = this[0];
for (let i = 1; i < this.length; i++) {
total = fn.call(thisTo, total, this[i], i, this)
}
return total;
}
let arr = [1, 2, 3, 4, 5];
let res = arr._reduce((total, cur, index, arr) => {
console.log(total, cur, index, arr); //每一次的tatal就是上一次的循环执行的返回结果
return total + cur;
});
console.log(res)
成功实现
结束
以上就是reduce循环的相关内容