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

การกรองวัตถุ JavaScript


ที่นี่เราต้องสร้างฟังก์ชันที่รับวัตถุและสตริงการค้นหาและกรองคีย์ของวัตถุที่ขึ้นต้นด้วยสตริงการค้นหาและส่งคืนวัตถุ

นี่คือรหัสสำหรับการทำเช่นนั้น -

ตัวอย่าง

const obj = {
   "PHY": "Physics",
   "MAT": "Mathematics",
   "BIO": "Biology",
   "COM": "Computer Science",
   "SST": "Social Studies",
   "SAN": "Sanskrit",
   "ENG": "English",
   "HIN": "Hindi",
   "ESP": "Spanish",
   "BST": "Business Studies",
   "ECO": "Economics",
   "CHE": "Chemistry",
   "HIS": "History"
}
const str = 'en';
const returnFilteredObject = (obj, str) => {
   const filteredObj = {};
   Object.keys(obj).forEach(key => {
      if(key.substr(0, str.length).toLowerCase() ===
      str.toLowerCase()){
         filteredObj[key] = obj[key];
      }
   });
   return filteredObj;
};
console.log(returnFilteredObject(obj, str));

คำอธิบายรหัส -

เราเพียงแค่วนซ้ำในแต่ละคีย์ของอ็อบเจ็กต์ ถ้ามันเริ่มต้นด้วย str ที่เราได้รับเป็นอาร์กิวเมนต์ เราก็บันทึกมันในอ็อบเจกต์อื่น มิฉะนั้น เราจะวนซ้ำ

เพื่อจุดประสงค์ของปัญหานี้ เราทำซ้ำผ่านแต่ละคีย์และผลักคีย์ที่จำเป็นในออบเจกต์ใหม่ แต่สำหรับโซลูชันที่มีประสิทธิภาพมากขึ้นแทนที่จะสร้างออบเจ็กต์ใหม่ เราอาจเพียงแค่ลบคุณสมบัติที่ไม่ต้องการออกจากออบเจ็กต์ดั้งเดิม

ผลลัพธ์

เอาต์พุตในคอนโซลจะเป็น -

{
   ENG:"English"
}