2013-05-26 87 views

回答

1

嘗試這種情況:

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

對於給定的陣列中,這將打印在陣列中的獨特元件的數量。

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 

如果你希望它是appliable所有陣列:

Array.prototype.countUniques = function() { 
    return this.filter(function(elem, index, self) { 
     return index == self.indexOf(elem); 
    }).length; 
}; 

用法:arr.countUniques() // 3

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

FIDDLE