정수 배열이 주어지고 단일 요소를 제외하고 모든 요소가 짝수 번 나타납니다. 우리의 임무는 단일 반복에서 해당 요소를 찾는 것입니다.
이것을 샘플 배열이라고 합시다 -
[1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]
이 문제를 시도하기 전에 비트 XOR(^)연산자에 대해 조금 이해할 필요가 있습니다.
XOR 연산자는 두 피연산자가 서로 보완적이면 TRUE를 반환하고 두 피연산자가 같으면 FALSE를 반환합니다.
XOR() 연산자의 TRUTH TABLE -
0 ^ 0 → 0 0 ^ 1 → 1 1 ^ 0 → 1 1 ^ 1 → 0
이 동작을 자세히 살펴보면 XOR 연산자가 정확히 같은 값(예:12^12)에 사용될 때 항상 FALSE 또는 0을 반환한다는 것을 알 수 있습니다. 즉, 짝수 번 나타나는 값을 부정하는 데 사용할 수 있습니다. . 그것이 바로 우리가 원하는 것입니다.
따라서 아래 코드에서 동일하게 작성하십시오 -
예시
const sampleArray = [1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]; console.log(sampleArray.reduce((a, b) => a ^ b));
각 요소를 반복하고 균일하게 나타나는 요소를 계속 부정하고 홀수 번 나타나는 유일한 요소가 반환됩니다.
출력
콘솔 출력은 -
1