我最近发现,您可以在整数数组上使用此函数,以使用 JavaScript 查找出现奇数次的数字。
array.reduce((a, b) => a ^ b);
[1, 2, 2].reduce((a, b) => a ^ b); // returns 1
我正在努力弄清楚 XOR 运算 (^) 的工作原理,并且想知道是否有类似的函数可以找到在数组中出现偶数次的数字。
最佳答案
XOR 是一种按位运算,其中一个比较位需要为 1
,另一个为 0
才能得出真值 1
code>(否则为 0
)。
例如
10^12 =
10 = 1010
12 = 1100
----
0110 = 6
----
XOR Rules:
1 ^ 1 = 0 ^ 0 = 0
1 ^ 0 = 0 ^ 1 = 1
因此,一个数字与其自身的异或结果为 0。(尝试一下。)
数字与 0 的异或得出数字本身。
这意味着您要取消所有出现偶数次的数字。这就留下了任何未出现偶数次的内容,彼此进行异或运算。
关于javascript - 如何找到数组中出现偶数次的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158281/