function singleNumber (arr) {
let result = 0
for (let i = 0; i < arr.length; ++i) {
// 异或满足 "交换律":a ^ b ^ a === a ^ a ^ b === b
// 相同的数异或得0,所以整个数组异或走一遍,会留下唯一的数
result ^= arr[i]
}
return result
} 
function singleNumber (arr) {
let result = 0
for (let i = 0; i < arr.length; ++i) {
// 异或满足 "交换律":a ^ b ^ a === a ^ a ^ b === b
// 相同的数异或得0,所以整个数组异或走一遍,会留下唯一的数
result ^= arr[i]
}
return result
}