jQuery:按值计算数组元素

Pla*_*Ton 3 arrays jquery

我有一组元素组装:

timeArray = [];
$('.time_select').each(function(i, selected) {
  timeArray[i] = $(selected).val();
});
Run Code Online (Sandbox Code Playgroud)

哪个.time_select是一组不同HTML选择标记的类.

我想做的是计算特定值出现的次数timeArray.奇怪的是,我还没有找到任何简洁的解决方案......当然有一种简单的方法可以做到这一点?

Ric*_*gan 11

我应该尝试使用(未充分利用)$.each()函数将其抽象为函数.

function countElement(item,array) {
    var count = 0;
    $.each(array, function(i,v) { if (v === item) count++; });
    return count;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

var a = ['foo','bar','foo'];
var b = countElement('foo',a); // should return 2
Run Code Online (Sandbox Code Playgroud)


Rei*_*gel 5

timeArray = [];
occurs = {};
$('.time_select').each(function(i, selected) {
  timeArray[i] = $(selected).val();
  if (occurs[timeArray[i]] != null ) { occurs[timeArray[i]]++; }
  else {occurs[timeArray[i]] = 1; }
});
Run Code Online (Sandbox Code Playgroud)