สมมติว่าเรามีอาร์เรย์และอ็อบเจกต์ดังนี้:
const main = [
{name: "Karan", age: 34},
{name: "Aayush", age: 24},
{name: "Ameesh", age: 23},
{name: "Joy", age: 33},
{name: "Siddarth", age: 43},
{name: "Nakul", age: 31},
{name: "Anmol", age: 21},
];
const names = ["Karan", "Joy", "Siddarth", "Ameesh"];เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ทั้งสองและกรองอาร์เรย์แรกในที่เดิม (in-place) ให้เหลือเฉพาะอ็อบเจกต์ที่ name อยู่ในอาร์เรย์ที่สอง
ตัวอย่าง
โค้ดต่อไปนี้เป็นตัวอย่าง:
const main = [
{name: "Karan", age: 34},
{name: "Aayush", age: 24},
{name: "Ameesh", age: 23},
{name: "Joy", age: 33},
{name: "Siddarth", age: 43},
{name: "Nakul", age: 31},
{name: "Anmol", age: 21},
];
const names = ["Karan", "Joy", "Siddarth", "Ameesh"];
const filterUnwanted = (main, names) => {
for(let i = 0; i < main.length; ){
if(names.includes(main[i].name)){
i++;
continue;
};
main.splice(i, 1);
};
};
filterUnwanted(main, names);
console.log(main);ผลลัพธ์
จะแสดงผลในคอนโซลดังนี้:
[
{ name: 'Karan', age: 34 },
{ name: 'Ameesh', age: 23 },
{ name: 'Joy', age: 33 },
{ name: 'Siddarth', age: 43 }
]