-3

配列内の一意のアイテムの数をカウントできる (つまり、重複を無視する) JavaScript 関数が必要です。例えば、

var r = [car, car, bike, bike, truck]

結果は 5 ではなく 3 になるはずです。

4

3 に答える 3

2

これを試して:

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);

特定の配列について、これは配列内の一意の要素の数を出力します。

于 2013-05-26T13:21:58.440 に答える
1
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();

フィドル

于 2013-05-26T13:23:53.357 に答える
0

使用する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

于 2013-05-26T13:22:01.583 に答える