来自对象的总和和分组数据

时间:2020-03-05 09:28:29

标签: javascript object

作为标题,我在处理数据时遇到问题

示例数据:

[
 {detail: { '60': 300, '80': 200 }},
 {detail: { '60': 100, '68': 222 }}
]

我如何处理这些数据,就像这样:

"60" : {
 "sum" : 400,  // value
 "count" : 2
},
"80" : {
 "sum" : 200,
 "count" : 1
},
"68" : {
 "sum" : 222,
 "count" : 1
},

1 个答案:

答案 0 :(得分:0)

const data = [
 {detail: { '60': 300, '80': 200 }},
 {detail: { '60': 100, '68': 222 }}
];

let result = {};

data.forEach( d => {
  let currentobj = d.detail
  Object.keys(currentobj).forEach( n=>{
    if(result[n]){
      result[n].sum += currentobj[n];
      result[n].count ++;
    }else{
      result[n] = {
      sum : currentobj[n],
      count : 1}
    }
  })
})

console.log(result)