เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มสามอาร์เรย์ทั้งหมดตามลำดับที่เพิ่มขึ้น จากนั้นฟังก์ชันควรสร้างและส่งคืนอาร์เรย์ที่มีเฉพาะองค์ประกอบที่มีอยู่ในทั้งสามอาร์เรย์
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr1 = [4, 7, 8, 11, 13, 15, 17]; const arr2 = [1, 3, 4, 13, 18]; const arr3 = [2, 4, 7, 8, 9, 10, 13];
จากนั้นผลลัพธ์ควรเป็น −
const output = [4, 13];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr1 = [4, 7, 8, 11, 13, 15, 17]; const arr2 = [1, 3, 4, 13, 18]; const arr3 = [2, 4, 7, 8, 9, 10, 13]; const intersectThree = (arr1 = [], arr2 = [], arr3 = []) => { let curr1 = 0; let curr2 = 0; let curr3 = 0; const res = []; while((curr1 < arr1.length) && (curr2 < arr2.length) && (curr3 < arr3.length)){ if((arr1[curr1] === arr2[curr2]) && (arr2[curr2] === arr3[curr3])){ res.push(arr1[curr1]); curr1++; curr2++; curr3++; } const max = Math.max(arr1[curr1], arr2[curr2], arr3[curr3]); if(arr1[curr1] < max){ curr1++; }; if(arr2[curr2] < max){ curr2++; }; if(arr3[curr3] < max){ curr3++; }; }; return res; }; console.log(intersectThree(arr1, arr2, arr3));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[4, 13]