累加:
let arr = [2, 5, 6];
let zhi = arr.reduce((x, y) => {
return x + y;
});
alert(zhi);
打印结果:13
累乘:
let arr = [2, 5, 6];
let zhi = arr.reduce((x, y) => {
return x * y;
});
alert(zhi);
打印结果:60
票数统计:
let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
let nameNum = names.reduce((pre,cur)=>{
console.log(JSON.stringify(pre) +" : " + cur);
if(cur in pre){
pre[cur]++
}else{
pre[cur] = 1
}
return pre
},{})
console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
pre初始为一个空对象,cur为names数组中每次遍历的元素
打印结果:
去重
let arr = [1,2,3,4,4,1];
let newArr = arr.reduce((pre, cur) => {
if (!pre.includes(cur)) {
return pre.concat(cur)
} else {
return pre
}
}, []);
alert(JSON.stringify(newArr));
pre初始值为一个数字[]
打印结果:
数据统计:
let arr = [
{name:"xuhaitao",age:36},
{name:"hunk xu",age:36},
{name:"guozhu",age:54}
];
let num = arr.reduce((pre, cur) => {
if (cur.age==36) {
return ++pre
} else {
return pre
}
}, 0);
alert(num);
打印结果:2
pre的初始值为0,cur为每次从数组中遍历取出的元素
FR:徐海涛(hunk Xu)
QQ技术交流群:386476712