我需要实现这样的目标:
var data = [
{
tag:'A',
others:'Abc'
},
{
tag:'B',
others:'Bbc'
},
{
tag:'A',
others:'Acb'
}
]
我正在尝试对具有相似值的标签属性进行分组。在给定的示例中,我需要将具有相似值的所有标签分组并将其放在另一个数组中。有没有办法得到类似的东西,
var newArray = [{tag:A,count:2}, {tag:B,count:1}]
最佳答案
这就是为什么 Array.reduce存在:
var data = [
{
tag:'A',
others:'Abc'
},
{
tag:'B',
others:'Bbc'
},
{
tag:'A',
others:'Acb'
}
];
var tmp = data.reduce(function (result, item) {
result[item.tag] = ++result[item.tag] || 1;
return result;
}, {});
var count = [];
Object.keys(tmp).forEach(function(key) { count.push({ tag: key, count: tmp[key] }); });
console.log(count);
document.write(JSON.stringify(count, null, 4));
关于javascript - 如何获取javascript对象中具有相似值的键的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33031721/