1

可能重复:
计算 Javascript 数组元素的出现次数

我在 javascript 中有一个数组,例如该数组是:

array(1,1,1,1,5,5,7,7);

如果有人可以帮助我了解如何计算相似值,以及如何加入相似值,谢谢大家,祝你有美好的一天。

4

4 回答 4

2
var array = [1,1,1,1,5,5,7,7];

var count = 0;
var tempArray = array.sort();
var i;
var prevValue = null;
var joined = [];
for (i = 0; i < array.length; i++) {

    if (tempArray[i] != prevValue) {
        count++;
        prevValue = tempArray[i];
        joined.push(prevValue);
    }

}

​document.write(joined);​
于 2012-07-24T18:30:51.920 回答
1

我可以建议使用underscore.js。您要查找的代码并不难编写,并且会是一次很好的学习体验。一旦你这样做了,underscore 是一个很棒的便利库,它提供你正在寻找的东西,你不必维护它。:)

uniq函数将为您提供没有重复的数组副本,而size函数将告诉您包含多少个值(或仅引用该.length属性)。

于 2012-07-24T18:30:23.527 回答
1

如果您希望唯一标识数组内容:

Array.prototype.unique =
  function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        // If this[i] is found later in the array
        if (this[i] === this[j])
          j = ++i;
      }
      a.push(this[i]);
    }
    return a;
  };

  var myArray = [1,1,1,1,5,5,7,7];

  var uniquedMyArray = myArray.unique();
  var valueCountsMyArray = [];
  for (var i = 0; i < myArray.length; i++) {
     if (valueCountsMyArray[myArray[i]])
        valueCountsMyArray[myArray[i]]++;
     else
        valueCountsMyArray[myArray[i]] = 1;
  }
于 2012-07-24T18:30:33.987 回答
0

这里有一个解决方案来计算它包含一个数字的次数。

var count = [];
for(var i=0; i<array.length; i++) {
    count[array[i]]++;
}
于 2012-07-24T18:26:28.293 回答