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]