首页 > 编程语言 > 详细

JS中的亦或运算符 ^ 的一种运用场景——返回数组元素个数为奇数个的元素

时间:2021-08-20 09:36:21      阅读:34      评论:0      收藏:0      [点我收藏+]

异或运算符的性质

0与1的运算:相同得 0,相异为 1
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 0 = 1
0 ^ 1 = 0
根本逻辑

12 ^ 5 = 9

1 1 0 0 = 12
0 1 0 1 = 5
1 0 0 1 = 9
满足交换律

A ^ B ^ c = A ^ c ^ B = B ^ c ^ A = C ^ B ^ A

运用

需求:传入一个数组,数组有且只有一个元素出现过奇数次,返回该元素

  • 关键字:只有一个元素出现奇数次
function demo(arr) {
  return arr.reduce((prev, next) => prev ^ next);
}
console.log(demo([10, 3, 2, 3, 5, 2, 5]));  // 10
运算过程 10 ^ 3 ^ 2 ^ 3 ^ 5 ^ 2 ^ 5
交换律得 10 ^ 3 ^ 3 ^ 2 ^ 2 ^ 5 ^ 5 相异为 1, 相同为 0;3 与 3 的二进制都相同,故 3 ^ 3 = 0;2,5 同理。最后只剩下 10 ^ 0 = 10

JS中的亦或运算符 ^ 的一种运用场景——返回数组元素个数为奇数个的元素

原文:https://www.cnblogs.com/Lilc20201212/p/15164666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!