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

การค้นหาค่า key เฉพาะในอาร์เรย์ของออบเจกต์ด้วย JavaScript

สมมติเรามี JSON Object แบบนี้:

const obj = {
  "LAPTOP": [{
    "productId": "123"
  }],
  "DESKTOP": [{
    "productId": "456"
  }],
  "MOUSE": [{
    "productId": "789"
  }, {
    "productId": "012"
  }],
  "KEY-BOARD": [{
    "productId": "345"
  }]
};

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับออบเจกต์แบบนี้เป็นอาร์กิวเมนต์แรก และคู่ key-value เป็นอาร์กิวเมนต์ที่สอง

คู่ key-value คือออบเจกต์แบบนี้:

const pair = {"productId": 456};

ฟังก์ชันควรค้นหาในออบเจกต์หา key ที่มี 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