使用 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+ 浏览

开启你的 职业生涯

完成课程即可获得认证

开始
广告