美文网首页
JS 数组 reduce 方法

JS 数组 reduce 方法

作者: 184455 | 来源:发表于2019-11-11 22:19 被阅读0次

主要讲解 ES6 新添加的数组方法:reduce 的使用介绍,然后说说自己使用时候的心得。

一、reduce 介绍以及参数

该数组方法主要是对数组里面的每一项元素执行回调方法,然后返回计算之后的结果。
具体参数:

array.reduce(function(prev, current, currentIndex, arr), initialValue)
  • prev 必选,表示前一次计算的结果;
  • current 可选,当前项;
  • currentIndex 可选,当前项的索引;
  • arr 可选,数组;
  • initialValue 可选,在一次执行数组的回调函数是,传给函数的初始值。

二、使用心得

关于这点感觉才是这篇文章的重点。数组的循环方法有很多:for, map, forEach, ...
但是为什么还要选择 reduce 方法呢?

看看这这篇文章,人家写的很好,我也是从中收到启发:https://www.jianshu.com/p/e375ba1cfc47

然后,自己要补充的一个场景就是:给对象的每一个属性(属性的值还是一个对象)添加一个属性

const obj = {
  a: {
    aa: 1
  },
  b: {
    bb: 2
  },
  c: {
    cc: 3
  }
}
const res = Object.keys(obj).reduce(function(prev, current) {
  return Object.assign(prev, {
    [current]: {
      ...obj[current],
      add: 'add property',
    }
  })
}, {})
console.log(res)
// {
//   a: { aa: 1, add: 'add property' },
//   b: { bb: 2, add: 'add property' },
//   c: { cc: 3, add: 'add property' }
// }

相关文章

网友评论

      本文标题:JS 数组 reduce 方法

      本文链接:https://www.haomeiwen.com/subject/nbwabctx.html