我有一个看起来格式如下的数据
[
{name: "a", class: "AA"},
{name: "b", class: "BB"},
{name: "xx", class: "XY"},
{name: "a", class: "AA"},
{name: "b", class: "BB"}
];
我试图减少这个来计算唯一名称和类值组合的出现次数,如下所示
name:"a", class:"AA", count: 2,
name:"b", class: "BB", count: 2,
name:"xx", class:"XY", count:1
我很熟悉如何在Javascript中实现这一点,减少一个变量的元素,但两个不同变量的组合是我需要帮助的地方。抱歉,如果这对你们中的一些人来说似乎很基础。
谢谢
最佳答案
一种方法是迭代数据数组并连接每个对象的名称和类属性,然后将其用作计数器对象的键,增加每个键的值。
var data = [{name:"a", class: "AA"}, {name:"b", class: "BB"}, {name:"xx", class: "XY"}, {name:"a", class:"AA"}, {name: "b", class:"BB"}];
var counter = {};
for (let obj of data) {
let key = `${obj.name}${obj.class}`;
if (counter[key] === undefined) {
counter[key] = 0;
}
counter[key]++;
}
console.log(counter);
请记住,示例代码使用 es6 中的功能
关于Javascript代码用于计算对象内两个不同变量的元素组合的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658214/