javascript - 如何从返回的对象中获取 JSON 条目
问题描述
我得到了 JSON 数据,例如:
{
"id": 1,
"active": true,
"dependency": [
{ "id": 2 }
{ "id": 3 }
]
},
{
"id": 2,
"active": true
},
{
"id": 3,
"active": true
}
我想检索id 1
对象中每个依赖项的“活动”值。到目前为止,我使用 forEach 来获取这些依赖项。
thisElement.dependency.forEach(function(id) {
console.log(id)
}
哪个返回id 2 and id 3 as objects
。有没有id.active
直接使用的方法?只使用一个循环?因为到目前为止的结果是与相关 JSON 数据没有任何连接的对象。是否需要遍历整个 JSON 数据来检索这些值?
解决方案
最有效的方法是首先使用 Object 或 Map 创建一个 hashmap,因此您只需要迭代一次数组即可找到与依赖项相关的值。
您可以通过Array#find()
每次使用来搜索整个数组来做到这一点,但这比 o(1) 对象查找的时间复杂度要高得多
const activeMap = new Map(data.map(obj => [obj.id, obj.active]))
data[0].dependency.forEach(({id}) => console.log(id ,' active: ' , activeMap.get(id)))
<script>
const data =
[
{
"id": 1,
"active": true,
"dependency": [
{"id": 2 },
{"id": 3}
]
},
{
"id": 2,
"active": false
},
{
"id": 3,
"active": true
}
]
</script>
推荐阅读
- react-native - 如何在 react-native 的 Stack Navigation 中将参数传递给另一个屏幕中的组件?
- angular - 通过角度模板覆盖 CSS 变量
- kubernetes - 从 GCP 上的实例访问 Kubernetes Pod
- linux - GPG 在 root 拥有的存储库上签署 Git 提交
- node.js - 从 nodejs 在 mongdb 中创建集合
- python - 多次调用嵌入在 C++ 应用程序中的 Python 解释器会产生分段错误
- fluid-layout - PeopleSoft 流体页面中的复选框
- python - EOS API 获取交易
- java - 正则表达式删除空格后的所有字符 // Android Java
- spring-boot - Spring Boot 微服务监控与管理