สมมติว่าเรามีวัตถุ JSON แบบนี้ -
const obj = {
"LAPTOP": [{
"productId": "123"
}],
"DESKTOP": [{
"productId": "456"
}],
"MOUSE": [{
"productId": "789"
}, {
"productId": "012"
}],
"KEY-BOARD": [{
"productId": "345"
}]
}; เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุเช่นอาร์กิวเมนต์แรก และคู่ค่าคีย์เป็นอาร์กิวเมนต์ที่สอง
โดยพื้นฐานแล้วคู่ของค่าคีย์นั้นไม่มีอะไรเลยนอกจากวัตถุเช่นนี้ −
const pair = {"productId": 456}; ฟังก์ชันควรค้นหาวัตถุสำหรับคีย์ด้วย "productId" ที่ระบุและส่งคืน
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const obj = {
"LAPTOP": [{
"productId": "123"
}],
"DESKTOP": [{
"productId": "456"
}],
"MOUSE": [{
"productId": "789"
}, {
"productId": "012"
}],
"KEY-BOARD": [{
"productId": "345"
}]
};
const searchByPair = (obj = {}, pair = {}) => {
const toSearch = Object.values(pair)[0];
let required = undefined;
Object.keys(obj).forEach((key) => {
if(obj[key].find((pid) => pid.productId === toSearch)){
required = key;
}
});
return required;
};
console.log(searchByPair(obj, {
'productId': '123'
})); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
LAPTOP