reduce详解

语法

1
2
3
4
5
6
7
arr.reduce(function(prev,cur,index,arr){
...
},init);
或者
arr.reduce(function(prev,cur,index,arr){
...
});
  • prev
    • 表示上一次调用回调时的返回值,或者初始值init
  • cur
    • 表示当前正在处理的数组元素
  • index(可选)
    • 表示当前正在处理的数组元素(cur)的索引,若提供init值,则索引为0,否则索引为1
  • arr(可选)
    • 表示调用reduce()的数组
  • init(可选)
    • 表示初始值

常用参数:prev和cur

示例

1
2
3
4
5
6
7
8
9
10
11
//计算数组中每个元素出现的个数
let person = ['野蛮人之王', '弓箭女皇', '大守护者', '闰土', '闰土'];
let count = person.reduce((prev, cur) => {
if (cur in prev) {
prev[cur]++;
} else {
prev[cur] = 1;
}
return prev;
}, {})
console.log(count)
1
2
3
4
5
6
7
8
9
10
//reduce数组去重
let arr = [1,2,3,2,1,4,5,6,78,3,4];
let newarr = arr.reduce((pre,cur)=>{
if(!pre.includes(cur)){
return pre.concat(cur)
}else{
return pre;
}
},[])
console.log(newarr)

reduce详解
https://blog-theta-ten.vercel.app/2021/08/13/reduce详解/
作者
Chen
发布于
2021年8月13日
许可协议