Если вам необходимо понять, что делает метод stray()
, он в основном выполняет операцию XOR с элементами массива, которые не могут быть соединены с дубликатом.Подробнее вы можете прочитать один из комментариев к вашему вопросу:
XOR имеет свойство, которое a ^ 0 == a
и a ^ a == 0
, поэтому дублированные элементы в массиве превращаются в0 во время этого процесса.
И из этой ссылки:
https://rohan -paul.github.io / javascript / 2017/01/28 / Bitwise_XOR_Operators_in_JavaScript /
Может использоваться для решения следующей задачи: По заданному массиву найти int, которое появляется нечетное число раз.Всегда будет только одно целое число, которое встречается нечетное число раз.
ИСПЫТАНИЯ:
const data1 = [17, 17, 3, 10, 10, 3, 3];
const data2 = [1, 1, 3, 1, 1, 4, 4, 4, 4];
const data3 = [1, 2, 3, 1, 2, 1, 2, 1, 2];
const stray = nums => nums.reduce((a, b) => a ^ b);
console.log(stray(data1));
console.log(stray(data2));
console.log(stray(data3));