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

Giao điểm duy nhất của các mảng trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript có hai mảng số, giả sử arr1 và arr2. Hàm cần tìm giao điểm giữa các phần tử của mảng. tức là các phần tử xuất hiện trong cả hai mảng.

Điều kiện duy nhất là nếu chúng ta gặp một phần tử trước đó như đã giao nhau, chúng ta không nên xem xét lại nó ngay cả khi nó xuất hiện lại trong cả hai mảng.

Ví dụ -

Nếu các mảng đầu vào là -

const arr1 = [1, 5, 7, 3, 1];
const arr2 = [1, 7, 3, 1, 6];

Sau đó, mảng đầu ra phải là -

const output = [1, 3, 7];

Tuy nhiên, thứ tự không quan trọng như vậy, điều quan trọng hơn là không xem xét giao điểm lặp lại.

Ví dụ

Sau đây là mã -

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

Đầu ra

Sau đây là kết quả trên bảng điều khiển -

[1, 7, 3]