我有兴趣了解数组中每个对象出现的次数。
这里是我想要做的事情,混合了一些我认为是这样做的伪代码。
var myArray = [1,2,3,1,1,3,4];
for (i = 0; i < myArray.length; i++) {
if (myArray[i].AlreadyExistsInAVariable) {
var[i]+ = 1;
}
else {
CreateAnewVar();
}
}
var one = 3;
var two = 1;
var three = 2;
var four = 1;
答案 0 :(得分:0)
您应该使用object来计算数组中数字的出现而不是使用变量。
-setAttributedText:
答案 1 :(得分:0)
这个怎么样:
var myArray = [1,2,3,1,1,3,4];
var count = myArray.reduce(function(n, val) {
return n + (val === 1);
}, 0);
console.log(count);
编辑:
为了计算数组中每个元素的出现次数,我会做这样的事情:
var result = {};
[1,2,3,1,1,3,4].forEach(function(e, i) {
result[e] = result[e] + 1 || 1;
});
alert(JSON.stringify(result, null, "\t"));
答案 2 :(得分:-1)
您实际上只能创建类似的新变量绑定。但是,您可以动态地向对象添加新属性,这可能是此问题的更好匹配。这是一个计算该数组中数字出现次数的示例:
var myArray = [1,2,3,1,1,3,4];
var counts = myArray.reduce(function(result, item) {
result[item] || (result[item] = 0);
result[item]++;
return result;
}, {});
console.log(counts);