Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กรองคุณสมบัติของอ็อบเจ็กต์ตามอาร์เรย์และรับออบเจกต์ที่กรองแล้ว JavaScript


เราต้องเขียนฟังก์ชันที่รับในอ็อบเจกต์และอาร์เรย์ตัวอักษรสตริง และส่งคืนอ็อบเจ็กต์ที่กรองด้วยคีย์ที่ปรากฏในอาร์เรย์ของสตริง

ตัวอย่างเช่น − หากวัตถุคือ {"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'
}