Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm giá trị khóa cụ thể trong mảng đối tượng bằng JavaScript


Giả sử chúng ta có một đối tượng JSON như thế này -

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

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một đối tượng như vậy làm đối số đầu tiên và một cặp giá trị khóa làm đối số thứ hai.

Cặp giá trị khóa về cơ bản không có gì khác ngoài một đối tượng như thế này -

const pair = {"productId": 456};

Sau đó, hàm sẽ tìm kiếm đối tượng cho khóa với "productId" được chỉ định và trả về.

Ví dụ

Mã cho điều này sẽ là -

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'
}));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

LAPTOP