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



输入数据

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)

最新更新