เราต้องเขียนฟังก์ชันที่รับออบเจกต์และอาร์เรย์สตริง และคืนค่าออบเจกต์ที่กรองแล้วพร้อมคีย์ที่ปรากฏในอาร์เรย์สตริง
ตัวอย่าง − ถ้าออบเจกต์คือ {"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' }