gpt4 book ai didi

javascript - JSON Group by count,输出到键值对json结果

转载 作者:搜寻专家 更新时间:2023-11-01 05:10:14 25 4
gpt4 key购买 nike

我有以下 JSON 数据

"rows": [{  
"createdDate": "3/11/2016",
"createdBy": "Bob"
},{
"createdDate": "3/12/2016",
"createdBy": "Megan"
},{
"createdDate": "3/12/2016",
"createdBy": "Bob"
},{
"createdDate": "3/13/2016",
"createdBy": "Sam"
},{
"createdDate": "3/11/2016",
"createdBy": "Bob"
},]

我想要图表的输出,我可以在其中按任何属性名称进行分组以进行计数,例如此处的“createdBy”:

"result": [{
"key": "Bob",
"value": 3,
},{
"key": "Megan",
"value": 1,
},{
"key": "Sam",
"value": 1,
},

我有 JSON 并且需要在绑定(bind)到我的图表之前按以下格式对其进行操作。我从下划线尝试了 _groupBy 但无法获得所需的结果。

最佳答案

通过 createBy 属性减少行以计算每个对象的出现次数。 occurences 将是一个对象,其键是名称(如 Bob1Megan 等),值是出现次数。然后使用 Object.keys() 循环遍历这个对象并将其映射到结果:

var rows = [
{ 'createdDate': '3/11/2016', 'createdBy': 'Bob' },
{ 'createdDate': '3/12/2016', 'createdBy': 'Megan' },
{ 'createdDate': '3/12/2016', 'createdBy': 'Bob' },
{ 'createdDate': '3/13/2016', 'createdBy': 'Sam' },
{ 'createdDate': '3/11/2016', 'createdBy': 'Bob' },
];

var occurences = rows.reduce(function (r, row) {
r[row.createdBy] = ++r[row.createdBy] || 1;
return r;
}, {});

var result = Object.keys(occurences).map(function (key) {
return { key: key, value: occurences[key] };
});

console.log(result);

关于javascript - JSON Group by count,输出到键值对json结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com