/**
* 找单身狗
* nums数组中包好1个或多个正整数
* 其他的数字都出现2次
* 只有一个数字出现了1次
* 找出出现了1次的数字
*/
/* 异或运算
规则:
a^b^c === c^a^b
a^a === 0
0^a === a
例子:
a^b^c^a^c
a^a^c^c^b
0^b === b
*/
代码:
let arr = [1, 3, 1, 2, 2, 7, 3, 6, 7];
function uniqueNumber(nums) {
/* // 解法1:
var result = 0;
for (var i = 0; i < nums.length; i++) {
result = result ^ nums[i];
}
return result; */
// 解法2:
return nums.reduce((a, b) => a ^ b, 0);
}
console.log(uniqueNumber(arr));