如何使用lodash对嵌套数组的对象值求和并生成结果数组
lodash 实现代码
首先给出可直接运行的完整实现:
const _ = require('lodash') // 原始输入数据 const input = [ [{"2018":63},{"2019":28},{"2020":21}], [{"2018":103},{"2019":200},{"2020":54}], [{"2017":74},{"2019":76},{"2020":31}] ] // 求和逻辑 const sumResult = _.map(input, subArray => { // 提取子数组内所有对象的属性值,累加求和 return _.sum(_.flatMap(subArray, _.values)) }) console.log(sumResult) // 输出:[112, 357, 181]
逻辑说明
- 用
_.map遍历外层数组的每一个子数组 - 用
_.flatMap配合_.values,将子数组内所有对象的属性值提取出来,摊平为一维数字数组 - 用
_.sum对一维数组的所有数值求和,得到每个子数组对应的总和
你也可以用更简洁的_.sumBy写法实现相同效果:
const sumResult = _.map(input, subArr => _.sumBy(subArr, item => _.sum(_.values(item))))
内容的提问来源于stack exchange,提问作者Ans
相关产品推荐
相关产品推荐

