เราจำเป็นต้องเขียนฟังก์ชัน 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 ] ]