我需要一个JavaScript函数,它能够计算数组中唯一项的数量(即忽略重复项)。例如,
var r = [car, car, bike, bike, truck]
结果应为3而不是5。
答案 0 :(得分: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);
对于给定的数组,这将打印数组中唯一元素的数量。
答案 1 :(得分: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();
答案 2 :(得分:0)
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