เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอาร์เรย์ Numbers เป็นอาร์กิวเมนต์แรกและอาร์เรย์ Numbers เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรเลือกอาร์เรย์ย่อยจากอาร์เรย์ของอาร์เรย์แรก (subarray ที่มีรายการร่วมกันของทั้งอาร์เรย์ที่สองและอาร์เรย์ที่ตรงกันของอาร์เรย์แรก)
ตัวอย่างเช่น −
หากอินพุตเป็น −
ตัวอย่าง
const arr1 = [ [1,2,5,6], [5,13,7,8], [9,11,13,15], [13,14,15,16], [1,9,11,12] ]; const arr2 = [9,11,13,15,1,2,5,6];
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
const output = [ [1, 2, 5, 6], [5, 13], [9, 11, 13, 15], [13, 15], [1, 9, 11] ]
องค์ประกอบทั่วไประหว่างอาร์เรย์ย่อยแรกของอาร์เรย์ที่หนึ่งและอาร์เรย์ที่สองจะสร้างอาร์เรย์ย่อยแรกของอาร์เรย์เอาต์พุต
องค์ประกอบทั่วไประหว่างอาร์เรย์ย่อยที่สองของอาร์เรย์ที่หนึ่งและอาร์เรย์ที่สองจะสร้างอาร์เรย์ย่อยที่สองของอาร์เรย์เอาต์พุต เป็นต้น
ตัวอย่าง
const arr1 = [ [1,2,5,6], [5,13,7,8], [9,11,13,15], [13,14,15,16], [1,9,11,12] ]; const arr2 = [9,11,13,15,1,2,5,6]; const findIntersection = (arr1 = [], arr2 = []) => { const regex = new RegExp('\\b(' + arr1.join('|') + ')\\b', 'g'); const res = []; arr2.forEach(arr => { let matches = arr.join(' ').match(regex); if (matches.length) { res.push(matches.map(Number)); }; }); return res; } console.log(findIntersection(arr2, arr1));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ [ 1, 2, 5, 6 ], [ 5, 13 ], [ 9, 11, 13, 15 ], [ 13, 15 ], [ 1, 9, 11 ] ]