Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_For Loop_Object - Fatal编程技术网

数组中重复元素的计数:Javascript

数组中重复元素的计数:Javascript,javascript,arrays,for-loop,object,Javascript,Arrays,For Loop,Object,有人能看一下我的代码,解释一下为什么我的返回值是3,而它应该是2吗?对象具有正确的计数{1:2,2:3,3:1,4:1,5:1}。只有两个值>=2 function countDuplicates(arr) { let dupNums = {}; let count = 0; ​ for (let i=0; i<arr.length; i++) { ​ if (dupNums[arr[i]] === undefined) {

有人能看一下我的代码,解释一下为什么我的返回值是3,而它应该是2吗?对象具有正确的计数{1:22:3,3:1,4:1,5:1}。只有两个值>=2

  function countDuplicates(arr) {
    let dupNums = {};
    let count = 0;
    ​
    for (let i=0; i<arr.length; i++) {
    ​
        if (dupNums[arr[i]] === undefined) {
            dupNums[arr[i]] = 0;
        }
    ​
        if (dupNums[arr[i]] !== undefined) {
            dupNums[arr[i]] += 1;
        }
    ​
        if (dupNums[arr[i]] >= 2) {
            count++;
        }
    }
    return count; 
    }
    console.log(countDuplicates([1,2,1,3,2,4,5,2]));
函数计数重复(arr){
设dupNums={};
让计数=0;
​
for(设i=0;i=2){
计数++;
}
}
返回计数;
}
日志(重复计数([1,2,1,3,2,4,5,2]);

您有三个2和两个1。每次发现重复项时,
count
都会递增

然后迭代对象的值,并计算>=2的值的数量:

函数计数重复(arr){
const dupNums={};
for(arr的const num){
dupNums[num]=(dupNums[num]| | 0)+1;
};
返回Object.values(dupNums)
.filter(num=>num>=2)
.长度;
}

log(countreplicates([1,2,1,3,2,4,5,2])您有三个2和两个1。每次发现重复项时,
count
都会递增

然后迭代对象的值,并计算>=2的值的数量:

函数计数重复(arr){
const dupNums={};
for(arr的const num){
dupNums[num]=(dupNums[num]| | 0)+1;
};
返回Object.values(dupNums)
.filter(num=>num>=2)
.长度;
}

log(countreplicates([1,2,1,3,2,4,5,2])使用一个
Set
跟踪dup NUM,另一个
Set
跟踪计数。 以下应该适用于您的场景

函数计数重复(arr){
const dupNums=新集合();
const countSet=新集合();
arr.forEach((num)=>
dupNums.has(num)?countSet.add(num):dupNums.add(num)
);
返回countSet.size;
}

log(countreplicates([1,2,1,3,2,4,5,2])使用一个
Set
跟踪dup NUM,另一个
Set
跟踪计数。 以下应该适用于您的场景

函数计数重复(arr){
const dupNums=新集合();
const countSet=新集合();
arr.forEach((num)=>
dupNums.has(num)?countSet.add(num):dupNums.add(num)
);
返回countSet.size;
}

log(countreplicates([1,2,1,3,2,4,5,2])注意:IE不支持
对象.值
。可以使用
对象。键
otherwise@AmitChigadani注:微软将于2021年8月终止对大多数微软在线产品IE的支持。如果您还没有开始过渡,现在就是时候了。
对象有多个多边形填充。值也有多个多边形填充;看,哈哈,我的代码已经用polyfills排序了。谢谢注意:IE不支持
对象.值
。可以使用
对象。键
otherwise@AmitChigadani注:微软将于2021年8月终止对大多数微软在线产品IE的支持。如果您还没有开始过渡,现在就是时候了。
对象有多个多边形填充。值也有多个多边形填充;看,哈哈,我的代码已经用polyfills排序了。谢谢因为你不止一次地数数他们…因为你不止一次地数数他们。。。。