JS中的reduce()详解
reduce()作为一个循环使用。接收四个参数:初始值(上一次返回值),当前元素值,当前元素下标,原数组。
应用 作为累加器使用
var a=[4,5,6,7,8]
//item代表一次回调的值 初始值为0
//cart代表当前元素的值
//index当前下标
//arr原数组
var num=a.reduce((item,cart,index,arr)=>{ return item+=cart },0)
//初始值为0
console.log(num) //输出为30
以上结果回调被调用用5次分别是
name | item | cart | index | arr | Output |
第一次 | 0 | 4 | 0 |
[4,5,6,7,8]
|
4 |
第二次 | 4 | 5 | 1 |
[4,5,6,7,8]
|
9 |
第三次 | 10 | 6 | 2 |
[4,5,6,7,8]
|
15 |
第四次 | 15 | 7 | 3 |
[4,5,6,7,8]
|
22 |
第五次 | 22 | 8 | 4 |
[4,5,6,7,8]
|
30 |
还可以利用reduce来计算一个字符串中每个字母出现次数
var str = 'asfadewqqfh'; var obj = str.split('').reduce((item,cart) => { //三元运算符 item[cart] ? item[cart] ++ : item[cart] = 1 return item },{}) console.log(obj)//以上结果输出为a: 2 d: 1 e: 1 f: 2 h: 1 q: 2 s: 1 w: 1
一辈子说长不长,说短不短,努力做好两件事:第一件事爱生活,爱身边的人,爱自己;第二件事是好好学习,好好工作,实现自己的人生价值观,而不仅仅是为了赚钱