Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để tìm một số nguyên xuất hiện một số lần lẻ trong một mảng JavaScript?

Chúng ta được cung cấp một mảng các số nguyên và được thông báo rằng tất cả các phần tử xuất hiện cho một số chẵn ngoại trừ một phần tử duy nhất. Công việc của chúng tôi là tìm ra phần tử đó trong một lần lặp lại.

Hãy để đây là mảng mẫu -

[1, 4, 3, 4, 2, 3, 2, 7, 8, 8, 9, 7, 9]

Trước khi giải quyết vấn đề này, chúng ta cần hiểu một chút về toán tử bitwise XOR (^).

Toán tử XOR trả về TRUE nếu cả hai toán hạng đều bổ sung cho nhau và trả về FALSE nếu cả hai toán hạng đều giống nhau.

BẢNG SỰ THẬT CỦA toán tử XOR () -

0 ^ 0 → 0
0 ^ 1 → 1
1 ^ 0 → 1
1 ^ 1 → 0

Nếu chúng ta kiểm tra kỹ hành vi này, chúng ta có thể nhận thấy rằng khi toán tử XOR được sử dụng trên các giá trị tên chính xác (ví dụ:12 ^ 12), nó luôn trả về FALSE hoặc 0, nói cách khác, nó có thể được sử dụng để phủ định giá trị xuất hiện cho số lần chẵn . Và đó chính xác là những gì chúng tôi muốn.

Vì vậy, viết tương tự trong đoạn mã dưới đây -

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));

Nó lặp lại từng phần tử và tiếp tục phủ định các phần tử xuất hiện chẵn và phần tử duy nhất xuất hiện với số lần lẻ được trả về.

Đầu ra

Đầu ra của bảng điều khiển sẽ là -

1