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の使用をお勧めします。あなたが探しているコードは書くのが難しくなく、良い学習体験になるでしょう。それが完了すると、アンダースコアは、探しているものを提供する素晴らしい便利なライブラリであり、維持する必要はありません。:)

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 に答える