Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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_Math - Fatal编程技术网

Javascript 如何确定数组中除了一个元素或只有一个元素出现两次之外,其他元素是否都出现两次?

Javascript 如何确定数组中除了一个元素或只有一个元素出现两次之外,其他元素是否都出现两次?,javascript,math,Javascript,Math,我试图解决以下问题: 以下是我迄今为止所做的尝试: function countFrequency(arr){ let countMap = { }; for(let i = 0 ; i < arr.length; i++){ if(countMap[arr[i]] == null){ countMap[arr[i]] = 1; } else{ countMap[ar

我试图解决以下问题:

以下是我迄今为止所做的尝试:

function countFrequency(arr){
    let  countMap = {

    };
    for(let i = 0 ; i < arr.length; i++){
        if(countMap[arr[i]] == null){
            countMap[arr[i]] = 1;
        }
        else{
            countMap[arr[i]] += 1;
        }
    }
    return countMap;
}


function duplicateOrUnique(arr){
    let type1 = true;
    countMap = countFrequency(arr);
    let count  = 0;
    for(let key in countMap){
        if(countMap[key] >= 2){
           count+=1;
        }
        if(count >= 2){
            type1 = false;
            break;
        }
    }
    if(type1){
        arrSum = arr => arr.reduce((a,b) => a + b, 0);
        k =  arr.length -1 ;
        return Math.abs(arrSum(arr) - (k*(k + 1)/2));
    }
    else{
        arrXor = arr => arr.reduce((a,b) => a ^ b, 0);
        return arrXor(arr)
    }
}
功能计数频率(arr){
设countMap={
};
for(设i=0;i=2){
计数+=1;
}
如果(计数>=2){
类型1=假;
打破
}
}
如果(类型1){
arrSum=arr=>arr.reduce((a,b)=>a+b,0);
k=arr.长度-1;
返回数学abs(arrSum(arr)-(k*(k+1)/2));
}
否则{
arrXor=arr=>arr.reduce((a,b)=>a^b,0);
返回arrXor(arr)
}
}
我使用
n*(n+1)/2
公式来查找案例1中的重复元素,而使用异或运算来查找唯一唯一的元素。这个过程应该比当前的解决方案更快。我如何优化它