Javascript 位运算符不清楚是什么';发生什么事了

Javascript 位运算符不清楚是什么';发生什么事了,javascript,xor,Javascript,Xor,我看到了这个解决方案,但不明白它是如何工作的: const data=[17,17,3,17,17,17,17]; 常数=nums=>nums.reduce((a,b)=>a^b); const res=杂散(数据); 控制台日志(res)如果您需要了解杂散()方法在做什么,它基本上执行数组中不能与重复元素配对的元素的XOR操作。有关详细信息,您可以阅读有关问题的评论: XOR有一个属性a^0==a和a^a==0,所以在这个过程中数组中的重复元素被转换为0 根据该参考资料: 它可以用来解决下

我看到了这个解决方案,但不明白它是如何工作的:

const data=[17,17,3,17,17,17,17];
常数=nums=>nums.reduce((a,b)=>a^b);
const res=杂散(数据);

控制台日志(res)
如果您需要了解
杂散()
方法在做什么,它基本上执行数组中不能与重复元素配对的元素的XOR操作。有关详细信息,您可以阅读有关问题的评论:

XOR有一个属性
a^0==a
a^a==0
,所以在这个过程中数组中的重复元素被转换为0

根据该参考资料:

它可以用来解决下一个问题:给定一个数组,找到出现奇数次的int。始终只有一个整数出现奇数次

测试用例:

constdata1=[17,17,3,10,10,3,3];
常量数据2=[1,1,3,1,1,4,4,4];
常量数据3=[1,2,3,1,2,1,2,1,2];
常数=nums=>nums.reduce((a,b)=>a^b);
控制台日志(杂散(数据1));
控制台日志(杂散(数据2));

控制台日志(杂散(数据3))
它只是
。((17^17)^3)^17…
“我看到了这个解决方案”什么的解决方案?xor有一个属性
a^0==a
a^a==0
,所以在这个过程中数组中的重复元素被转换为0,从而在数组中唯一元素之间返回xor,如果只有一个唯一元素,则返回这个元素