我有一系列项目。
var items = {'A', 'A', 'A', 'B', 'B', 'C'}
我想输出一个数组来计算每个项目的数量。 所以输出应该如下:
{
'A': 3,
'B': 2,
'C': 1
}
答案 0 :(得分:0)
它不起作用的最大原因是使用{}意味着你声明一个对象,使用[]意味着你正在声明一个数组。
除此之外,您编写的代码只需要很少的修改
var items = ['A', 'A', 'A', 'B', 'B', 'C'];
function count(items) {
var result = [];
var count = 0;
for (var i=0; i<items.length; i++) {
var item = items[i];
if(typeof result[item] === 'undefined') {
//this is the first time we have encountered this key
//so we initialize its count to 0
result[item] = 0;
}
result[item]++;
}
return result;
}
var result = count(items);
for (var key in result) {
alert(key + " : " + result[key]);
}
答案 1 :(得分:0)
If you have an array [] instead of an object {} this works:
var items = ['A', 'A', 'A', 'B', 'B', 'C'];
var o = {};
items.forEach(function(element) {
(element in o) ? o[element]++ : o[element] = 1;
});
If you have a real object with keys and values you could use Object.keys() on items to return an array.