javascript - 如何找到数组中出现偶数次的整数?

标签 javascript arrays reduce

我最近发现,您可以在整数数组上使用此函数,以使用 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/

相关文章:

javascript - 使用函数式 JavaScript 将数组拆分为两个不同的数组

clojure - 'reduced' 函数有什么作用以及如何使用它

javascript - Accordion 面板歪斜

javascript - AngularJS 属性在第一次调用时未绑定(bind)

javascript - 从另一个 Controller 单击按钮时更新第一个 Controller 的 ng-model

android - 使用 strings.xml 中的字符串数组填充 string[] 时出现问题

javascript - 如何使用 vue-test-utils 和 jest 在单元测试期间模拟 Vue Mixins?

c - 在 C 中将文件中的字符串和整数扫描到数组中

javascript - 获取要在文本框中显示的多个元素值

javascript - 每个对象的标签值对象