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中的重复元素,而使用异或运算来查找唯一唯一的元素。这个过程应该比当前的解决方案更快。我如何优化它