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

JavaScript - ค้นหาคีย์สำหรับค่าที่ตรงกันเหมือนแบบสอบถามในSQL


สมมติว่าเรามีวัตถุเช่นนี้ −

const obj = {"100":"Jaipur","101":"Delhi","102":"Raipur","104":"Goa"};

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับหนึ่งในวัตถุเช่นอาร์กิวเมนต์แรกและคำค้นหาเป็นอาร์กิวเมนต์ที่สอง จากนั้นฟังก์ชันของเราควรส่งคืนคู่คีย์/ค่าเหล่านั้นทั้งหมดที่มีค่ารวมคำค้นหาที่กำหนดให้ฟังก์ชันเป็นอาร์กิวเมนต์ที่สอง

เราจะวนซ้ำผ่านวัตถุ สร้างวัตถุผลลัพธ์ (หากตรงกับเงื่อนไข) ขณะที่เราเคลื่อนผ่านและส่งคืนวัตถุนั้นในที่สุด

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const obj = {
   "100":"Jaipur",
   "101":"Delhi",
   "102":"Raipur",
   "104":"Goa"
};
const findByQuery = (obj, query) => {
   const keys = Object.keys(obj);
   const res = {};
   keys.forEach(key => {
      // case insensitive search
      if(obj[key].toLowerCase().includes(query.toLowerCase())){
         res[key] = obj[key]
      };
   });
   return res;
};
console.log(findByQuery(obj, 'Pur'));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

{ '100': 'Jaipur', '102': 'Raipur' }