สมมติว่าเรามีวัตถุของอาร์เรย์ของตัวเลขเช่นนี้ −
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]