数组(Array)的常用方法(reduce)

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}

 

posted @ 2020-03-02 11:26  冰凝^  阅读(818)  评论(0编辑  收藏  举报