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