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

Tìm giao điểm của nhiều mảng - JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào bất kỳ số lượng mảng tùy ý nào và trả về một mảng các phần tử chung cho tất cả các mảng. Nếu không có phần tử chung nào, thì chúng ta sẽ trả về một mảng trống.

Giả sử sau đây là các mảng của chúng tôi -

const arr1 = [2, 6, 7, 1, 7, 8, 4, 3];
const arr2 = [5, ,7, 2, 2, 1, 3];
const arr3 = [1, 56, 345, 6, 54, 2, 68, 85, 3];

Ví dụ

Sau đây là mã -

const arr1 = [2, 6, 7, 1, 7, 8, 4, 3];
const arr2 = [5, ,7, 2, 2, 1, 3];
const arr3 = [1, 56, 345, 6, 54, 2, 68, 85, 3];
const intersection = (arr1, arr2) => {
   const res = [];
   for(let i = 0; i < arr1.length; i++){
      if(!arr2.includes(arr1[i])){
         continue;
      };
      res.push(arr1[i]);
   };
   return res;
};
const intersectMany = (...arrs) => {
   let res = arrs[0].slice();
   for(let i = 1; i < arrs.length; i++){
      res = intersection(res, arrs[i]);
   };
   return res;
};
console.log(intersectMany(arr1, arr2, arr3));

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[2, 1, 3]