【发布时间】:2021-11-25 09:04:17
【问题描述】:
我们如何按属性对数组对象进行分组。例如下面我想按oldStockBooks.name 对样本数据进行分组(见底部的预期结果)?
去过以下这些链接,但我无法在我的场景stack-link-1、stack-link-2 中应用它。
我已经尝试了下面的这些代码,但它没有按预期工作。
var counter = {};
oldStockBooks.forEach(function(obj) {
var key = JSON.stringify(obj)
counter[key] = (counter[key] || 0) + 1
});
样本数据:
const oldStockBooks = [
{
name: 'english book',
author: 'cupello',
version: 1,
//... more props here
},
{
name: 'biology book',
author: 'nagazumi',
version: 4,
},
{
name: 'english book',
author: 'cupello',
version: 2,
},
];
预期结果:仅显示 name、author 和 total 道具。而total props 将是按书名重复的次数。
const output = [
{
name: 'english book',
author: 'cupello',
total: 2,
},
{
name: 'biology book',
author: 'nagazumi',
total: 1,
},
];
【问题讨论】:
标签: javascript