Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาส่วนร่วม (Intersection) ของหลายอาร์เรย์ - JavaScript

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์จำนวนเท่าไหร่ก็ได้ และคืนค่าอาร์เรย์ของสมาชิกที่ร่วมกันในทุกอาร์เรย์ ถ้าไม่มีให้คืนอาร์เรย์ว่าง

ตัวอย่างอาร์เรย์:

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

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

[2, 1, 3]