如何使用键值对创建动态对象

拉胡尔·赛尼

输入数据

var rows = [{
   'type':'action',
   'key':'active_session',
   'count': 4596
},{
   'type':'action',
   'key':'active_session',
   'count': 100
},{
  'type':'action',
  'key':'know_more',
  'count': 100
},{
  'type':"category",
 'key': "reactions",
 'count': 500
}];

预期输出

 {"action": {
        "active_session": 4696,
         "know_more":100
    },
 "category":{
     "reaction": 500 
  }
 }

我有输入数据,不知道如何以最简单的方式实现预期输出。请帮助我将不胜感激。

内纳德·弗拉卡尔

您可以使用reduce方法获得所需的结果并将对象用作累加器值。

var rows = [{"type":"action","key":"active_session","count":4596},{"type":"action","key":"active_session","count":100},{"type":"action","key":"know_more","count":100},{"type":"category","key":"reactions","count":500}]

const result = rows.reduce((r, { type, key, count }) => {
  r[type] = r[type] || {}
  r[type][key] = r[type][key] || 0
  r[type][key] += count
  return r;
}, {})

console.log(result)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章