เราต้องเขียนฟังก์ชันที่รับในอ็อบเจกต์และอาร์เรย์ตัวอักษรสตริง และส่งคืนอ็อบเจ็กต์ที่กรองด้วยคีย์ที่ปรากฏในอาร์เรย์ของสตริง
ตัวอย่างเช่น − หากวัตถุคือ {"a":[], "b":[], "c":[], "d":[]} และอาร์เรย์คือ ["a", "d"] ดังนั้น ผลลัพธ์ควรเป็น −
{“a”: [], “d”:[]} ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน
เราจะย้ำคีย์ของออบเจกต์ไม่ว่าจะมีอยู่ในอาร์เรย์หรือไม่ ถ้ามี หากดันคู่ค่าคีย์นั้นเข้าไปในอ็อบเจกต์ใหม่ มิฉะนั้น เราจะวนซ้ำและส่งคืนอ็อบเจ็กต์ใหม่ในตอนท้าย
ตัวอย่าง
const capitals = {
"usa": "Washington DC",
"uk": "London",
"india": "New Delhi",
"italy": "rome",
"japan": "tokyo",
"germany": "berlin",
"china": "shanghai",
"spain": "madrid",
"france": "paris",
"portugal": "lisbon"
};
const countries = ["uk", "india", "germany", "china", "france"];
const filterObject = (obj, arr) => {
const newObj = {};
for(key in obj){
if(arr.includes(key)){
newObj[key] = obj[key];
};
};
return newObj;
};
console.log(filterObject(capitals, countries)); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
{
uk: 'London',
india: 'New Delhi',
germany: 'berlin',
china: 'shanghai',
france: 'paris'
}