动态数组值计数

时间:2013-05-28 09:24:40

标签: javascript jquery

与此问题类似 - Array value count javascript

除了动态值之外,我该如何做呢?

var counts = []
var dates= [ "28/05/2013", "27/05/2013", "28/05/2013", "26/05/2013", "28/05/2013" ];

如何计算重复的数组值?那么多少28/05/2013等。日期都是动态的,所以我不能只搜索设定值。我无法理解我将如何做到这一点。

我可能只是废弃这个想法,并从过去10天或者其他东西中获取数值...但这可能会在以后派上用场(如果甚至可以这样做的话)。

3 个答案:

答案 0 :(得分:3)

使counts对象在固定时间内执行重复检测。

var counts = {}

for (var i = 0; i < dates.length; i++) {
    var date = dates[i];
    if (counts[date] === undefined) {
        counts[date] = 0;
    }
    counts[date] += 1;
}

console.log(counts);

答案 1 :(得分:3)

这样做:

var counts = {};
for (var i=0; i<dates.length; i++)
    if (dates[i] in counts)
        counts[dates[i]]++;
    else
        counts[dates[i]] = 1;

结果将是

> counts
{
    "28/05/2013": 3,
    "27/05/2013": 1,
    "26/05/2013": 1
}

答案 2 :(得分:0)

试试这个

<强>更新

var dates= [ "28/05/2013", "27/05/2013", "28/05/2013", "26/05/2013", "28/05/2013" ];
var findStr = "28/05/2013";
var indexs = dates.indexOf(findStr,0),count=0;
for (var i=0;i< dates.length;i++){
if (indexs >= 0){
    indexs = dates.indexOf(findStr,indexs + 1);
    count++;
}
}
alert(count);

See Demo