Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

JavaScript: การหาคีย์สำหรับค่าที่ตรงกับคำค้นหาแบบ LIKE ใน SQL

สมมติเรามีออบเจกต์แบบนี้:

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

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

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

ตัวอย่างโค้ด

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
    if(obj[key].toLowerCase().includes(query.toLowerCase())){
      res[key] = obj[key]
    };
  });
  return res;
};
console.log(findByQuery(obj, 'Pur'));

ผลลัพธ์

ผลลัพธ์ที่แสดงในคอนโซลจะเป็นดังนี้:

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