与此问题类似 - 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天或者其他东西中获取数值...但这可能会在以后派上用场(如果甚至可以这样做的话)。
答案 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);