我有一个大数组,如下所示,现在我需要按第一列进行分组并计算该 channel 存在的总数。
例如:
var original_db = [
["channel1", "online"],
["channel2", "offline"],
["channel3", "online"],
["channel1", "online"],
["lot more"]....
]
原始结果的预期结果需要是:
var custom_db = [
["channel1", 2],
["channel2", 0],
["channel3", 1]
]
编辑:
for(var key in original_db) {
var i;
for (i = 0; i < original_db.length; i += 1) {
if (original_db[i][0] === original_db[key][0]) {
original_db.splice(i, 1);
return;
}
}
}
console.log(original_db);
最佳答案
使用一个属性是第一个元素的对象来保持计数:
var counts = {};
for (var i = 0; i < original.length; i++) {
var key = original[i][0];
if (counts[key]) {
counts[key]++;
} else {
counts[key] = 1;
}
}
然后你可以把它变成你的最终数组,虽然我不确定为什么你更喜欢它而不是 counts
对象:
final = [];
for (var key in counts){
final.push([key, counts[key]]);
}
关于javascript - 我如何做一个数组组并对其进行计数,就像在 MySQL 中按给定列 id 分组一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323356/