配列内の一意のアイテムの数をカウントできる (つまり、重複を無視する) JavaScript 関数が必要です。例えば、
var r = [car, car, bike, bike, truck]
結果は 5 ではなく 3 になるはずです。
配列内の一意のアイテムの数をカウントできる (つまり、重複を無視する) JavaScript 関数が必要です。例えば、
var r = [car, car, bike, bike, truck]
結果は 5 ではなく 3 になるはずです。
これを試して:
var r = ['car', 'car', 'bike', 'bike', 'truck'];
var counts = [], count = 0, i = 0;
for(i=0; i<r.length; i++) {
if(counts[r[i]] == undefined) {
counts[r[i]] = 1;
count++;
}
}
console.log(count);
特定の配列について、これは配列内の一意の要素の数を出力します。
Array.prototype.count_unique = function() {
var arr2 = [];
for (i = this.length; i--;) {
if (arr2.indexOf( this[i] ) == -1) arr2.push( this[i] );
}
return arr2.length;
}
使用済み
var r = ['car', 'car', 'bike', 'bike', 'truck'],
unique = r.count_unique();
使用するArray.filter()
var arr = ['car', 'car', 'bike', 'bike', 'truck'],
countUniques = arr.filter(function(elem, index, self) {
return index == self.indexOf(elem);
}).length;
alert(countUniques); //will show 3
すべての配列に適用できるようにする場合:
Array.prototype.countUniques = function() {
return this.filter(function(elem, index, self) {
return index == self.indexOf(elem);
}).length;
};
使用法:arr.countUniques() // 3