Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm phần tử khác biệt trong mảng - JavaScript

Cho mảng chứa các phần tử giống nhau trừ một phần tử. Tìm phần tử "khác biệt" đó.

Ví dụ

Mảng: [2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] → phần tử khác là 2

Giải pháp

Mã triển khai (kiểm tra 3 phần tử liên tiếp):

const arr = [2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4];
const findUnlike = arr => {
  for (let i = 1; i < arr.length - 1; i++) {
    if (arr[i] !== arr[i-1] && arr[i] === arr[i+1]) return arr[i-1];
    if (arr[i] !== arr[i-1] && arr[i] !== arr[i+1]) return arr[i];
    if (arr[i] === arr[i-1] && arr[i] !== arr[i+1]) return arr[i+1];
  }
  // Xử lý trường hợp phần tử khác ở đầu hoặc cuối
  if (arr[0] !== arr[1]) return arr[0];
  if (arr[arr.length-1] !== arr[arr.length-2]) return arr[arr.length-1];
};

console.log(findUnlike(arr));

Kết quả

Đầu ra trong console:

2

Cách tốt hơn: Dùng arr.find(el => arr.filter(x => x === el).length === 1) hoặc XOR nếu là số.