สมมติเรามีออบเจกต์แบบนี้:
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' }