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

ค้นหาค่าคีย์เฉพาะในอาร์เรย์ของวัตถุโดยใช้ JavaScript


สมมติว่าเรามีวัตถุ 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