Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算数组中的项目数,忽略重复项_Javascript_Arrays - Fatal编程技术网

Javascript 计算数组中的项目数,忽略重复项

Javascript 计算数组中的项目数,忽略重复项,javascript,arrays,Javascript,Arrays,我需要一个JavaScript函数,它能够计算数组中唯一项的数量(即忽略重复项)。比如说, var r = [car, car, bike, bike, truck] 结果应该是3而不是5。尝试以下方法: var r = ['car', 'car', 'bike', 'bike', 'truck']; var counts = [], count = 0, i = 0; for(i=0; i<r.length; i++) { if(counts[r[i]] == undefine

我需要一个JavaScript函数,它能够计算数组中唯一项的数量(即忽略重复项)。比如说,

var r = [car, car, bike, bike, truck]
结果应该是3而不是5。

尝试以下方法:

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);
var r=['car','car','bike','bike','truck'];
变量计数=[],计数=0,i=0;
对于(i=0;i使用

如果希望它适用于所有阵列:

Array.prototype.countUniques = function() {
    return this.filter(function(elem, index, self) {
        return index == self.indexOf(elem);
    }).length;
};
用法:
arr.countUniques()//3

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;
}
使用

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