计算数组中的出现次数

时间:2015-07-24 13:37:27

标签: javascript jquery arrays for-loop

我有兴趣了解数组中每个对象出现的次数。

这里是我想要做的事情,混合了一些我认为是这样做的伪代码。

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;

3 个答案:

答案 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);

在此处查看此行动:http://jsbin.com/huduroyite/edit?js,console