js 组对象中相同属性值求和,(数值相加,数组重组)

Posted 希儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 组对象中相同属性值求和,(数值相加,数组重组)相关的知识,希望对你有一定的参考价值。

1、需求
数组对象中相同属性值求和,(数值相加,数组重组)
2、案例

let a=[{
    "id": 1,
    "sahib": 1,
    "child": 2,
    "age": [3,1],
    "index": 0
  },{
    "sahib": 2,
    "age": [],
    "child": 0,
    "id": 2
  }
]
let res = a.reduce((result, next)=>{
  if(!result) result = {}
  Object.keys(next).forEach((key)=>{
    //数值类型
    if(typeof next[key] == \'number\'){
      result[key] = (result[key]?result[key]:0) + next[key]
    }
    //数组类型
    if(next[key] instanceof Array){
      result[key] = (result[key]?result[key]:[]).concat(next[key])
    }
  })
  return result
})

console.log(res) 
//结果
{
  age: [3, 1],
  child: 2,
  id: 3,
  index: 0,
  sahib: 3
}

声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出

以上是关于js 组对象中相同属性值求和,(数值相加,数组重组)的主要内容,如果未能解决你的问题,请参考以下文章

请问js中对象数组求和代码怎么实现?

JS数组对象中有相同值的数据拿出相同的对象重组

js数组相加

js篇章,数组合并其中属性值相同的项目且属性值相加

数组对象修改某一个属性值的数据类型

更改数组中对象的属性