Cho mảng số nguyên, tất cả các phần tử xuất hiện số lần chẵn trừ một phần tử. Tìm phần tử đó trong một lần duyệt.
Mảng mẫu:
[1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]
Cần hiểu về toán tử XOR (^):
0 ^ 0 → 0 0 ^ 1 → 1 1 ^ 0 → 1 1 ^ 1 → 0
Khi XOR hai giá trị giống nhau (ví dụ 12^12) luôn trả về 0, có thể dùng để loại bỏ các giá trị xuất hiện số lần chẵn.
Ví dụ
const sampleArray = [1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]; console.log(sampleArray.reduce((a, b) => a ^ b));
Code duyệt qua từng phần tử, loại bỏ các phần tử xuất hiện chẵn lần, chỉ còn lại phần tử xuất hiện lẻ lần.
Kết quả
Đầu ra console:
1