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

Giao duy nhất của hai mảng trong JavaScript


Chúng ta cần viết hàm nhận hai mảng số arr1, arr2. Hàm tìm giao giữa các phần tử (phần tử xuất hiện trong cả hai). Điều kiện: nếu đã gặp phần tử giao trước đó, không xem xét lại dù nó xuất hiện lại trong cả hai mảng.

Ví dụ - arr1 = [1, 5, 7, 3, 1], arr2 = [1, 7, 3, 1, 6] -> output = [1, 3, 7] (thứ tự không quan trọng, quan trọng là không giao lặp).

Ví dụ

Code sau đây:

const arr1 = [1, 5, 7, 3, 1]; 
const arr2 = [1, 7, 3, 1, 6]; 
const uniqueIntersection = (arr1, arr2) => { 
  const map = new Set(); 
  const res = []; 
  arr1.forEach(el => map.add(el)); 
  arr2.forEach(el => { 
    if (map.has(el)) { 
      res.push(el); 
      map.delete(el); 
    } 
  }); 
  return res; 
}; 
console.log(uniqueIntersection(arr1, arr2));

Kết quả

Kết quả trên console:

[1, 7, 3]