เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลขสองอาร์เรย์ ให้เรียกว่า arr1 และ arr2
ฟังก์ชันควรสร้างอาร์เรย์ที่สามโดยยึดตามอาร์เรย์อินพุต 2 ชุดที่มีองค์ประกอบทั้งหมดที่เหมือนกันกับทั้ง arr1 และ arr2
โปรดทราบว่าหากมีองค์ประกอบเดียวกันมากกว่าหนึ่งรายการในอาร์เรย์ทั้งสอง เราต้องพิจารณาอินสแตนซ์ดังกล่าวทั้งหมดขององค์ประกอบนั้น
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr1 = [1, 2, 2, 4, 4, 5, 6]; const arr2 = [3, 2, 4, 2, 4, 9];
จากนั้นอาร์เรย์เอาต์พุตควรเป็น −
const output = [2, 2, 4, 4];
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr1 = [1, 2, 2, 4, 4, 5, 6];
const arr2 = [3, 2, 4, 2, 4, 9];
const findIntersection = (arr1 = [], arr2 = []) => {
const map = new Map();
for (const el of arr2) {
const count = map.get(el) || 0;
map.set(el, count + 1);
};
return arr1.filter(el => {
let count = map.get(el);
if (count) {
map.set(el, --count);
return true;
}
return false;
});
};
console.log(findIntersection(arr1, arr2)); ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
[2, 2, 4, 4]