reduce
数组通过此方法,可以实现将每一项叠加称为一项。
使用:sum = arr.reduce(fun, start);
其中,fun为一个方法,接收四个参数,分别为
pre:初始值或者上一次叠加(计算)结果值
cur:当前项的值
index:当前项的index
arr:原数组
其中,start为叠加计算定义类型,并且为初始值,此值可以根据实际情况设置为任意值(看例子2)。
最终返回结果(sum)。
例子1:
const arr = [5, 10, 15];
console.log('start'); const sum = arr.reduce((pre, cur, index, arr)=>{
console.log(pre, cur, index); return pre + cur; }, 0);
console.log('end');
console.log('sum:', sum);
// 打印结果分别为:
start
5, 10, 1
15, 15, 2
end
sum: 30
例子2:
const arr = [ { name: 'zs', score: 88 }, { name: 'ls', score: 90 }, { name: 'ww', score: 80 } ]; const sum = arr.reduce((pre, cur) =>{ return pre + cur.score; }, 0); console.log('sum: ', sum);
// sum: 258
// 初始值可设置成任意值
const sum1 = arr.reduce((pre, cur)=>{
return pre + cur.score;
}, -10);
console.log('sum1: ', sum1);
// sum1: 248
// 初始值可设置为任意类型
const re = arr.reduce((pre, cur)=>{
pre[cur.name] = cur.score;
return pre;
}, {});
console.log('re: ', re);
//re: {zs: 88, ls: 90, ww: 80}