首页 > 解决方案 > 传入密钥并返回对象 javascript

问题描述

使用像这样结构的 JSON 数组,

"object1": {
  "key1": "value1"
  "key2": "value2"
}
"object2": {
  "key3": null
  "key4": null
}
}

我可以传递密钥吗?key3 并返回它所属的对象,例如。对象2?

我知道这可以通过 for 循环实现,但是我有很多键,所以我想知道是否还有其他方法。

标签: javascriptjson

解决方案


您可以遍历所有键并创建一个查找表。这将允许在O(1)产生预处理成本后进行搜索。

const obj = {
  "object1": {
    "key1": "value1",
    "key2": "value2"
  },
  "object2": {
    "key3": null,
    "key4": null
  }
};
const lookup = {};
for (const k of Object.keys(obj)) {
  for (const k2 of Object.keys(obj[k])) {
    lookup[k2] = k;
  }
}
console.log(lookup['key3']);
console.log(obj[lookup['key3']]);
console.log(lookup['key1']);


推荐阅读