Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การค้นหา Common Item ระหว่าง Arbitrary Number of Arrays ใน JavaScript


สมมติว่าเรามีวัตถุของอาร์เรย์ของตัวเลขเช่นนี้ −

const obj = {
   a: [ 15, 23, 36, 49, 104, 211 ],
   b: [ 9, 12, 23 ],
   c: [ 11, 17, 18, 23, 38 ],
   d: [ 13, 21, 23, 27, 40, 85]
};

จำนวนองค์ประกอบในวัตถุไม่คงที่และสามารถมีองค์ประกอบได้ตามต้องการ

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

ดังนั้น สำหรับวัตถุข้างต้น ผลลัพธ์ควรเป็น −

const output = [23];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const obj = {
   a: [ 15, 23, 36, 49, 104, 211 ],
   b: [ 9, 12, 23 ],
   c: [ 11, 17, 18, 23, 38 ],
   d: [ 13, 21, 23, 27, 40, 85]
};
const commonBetweenTwo = (arr1, arr2) => {
   const res = [];
   for(let i = 0; i < arr1.length; i++){
      if(arr2.includes(arr1[i])){
         res.push(arr1[i]);
      };
   };
   return res;
};
const commonBetweenMany = (obj = {}) => {
   const keys = Object.keys(obj);
   let res = obj[keys[0]];
   for(let i = 1; i < keys.length - 1; i++){
      res = commonBetweenTwo(res, obj[keys[i]]);
      if(!res.length){
         return [];
      };
   };
   return res;
};
console.log(commonBetweenMany(obj));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[23]