使用 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

更新於: 21-Nov-2020

3K+ 瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.