Javascript 使用不同的键迭代Json
我如何循环通过这个JSON对象找到一个特定的“id”键,并返回名称“outer key”?对不起,我对正确的名字不太熟悉 也就是说,搜索id“24”,然后在Javascript中获取“Jax”Javascript 使用不同的键迭代Json,javascript,json,Javascript,Json,我如何循环通过这个JSON对象找到一个特定的“id”键,并返回名称“outer key”?对不起,我对正确的名字不太熟悉 也就是说,搜索id“24”,然后在Javascript中获取“Jax” { "type":"champion", "version":"7.2.1", "data":{ "Jax":{ "id":24, "key":"Jax", "name":"Jax", "title":"Grandmaster
{
"type":"champion",
"version":"7.2.1",
"data":{
"Jax":{
"id":24,
"key":"Jax",
"name":"Jax",
"title":"Grandmaster at Arms",
"tags":[
"Fighter",
"Assassin"
]
},
"Sona":{
"id":37,
"key":"Sona",
"name":"Sona",
"title":"Maven of the Strings",
"tags":[
"Support",
"Mage"
]
}
}
}
您可以使用
for..of
循环,Object.entries()
迭代对象的属性名称和值;如果值id
匹配24
,则将变量设置为该对象的属性名称<代码>中断循环或从if
语句中返回属性
function getData(json, _id) {
let prop = `${_id} not found`;
for (let [key, value] of Object.entries(json)) {
let {id} = value;
if (id && id === _id) {
return key
}
}
return prop;
}
let res = getData(json.data, 24);
注意,缺少结束
}
。注意,。为什么要等到所有循环迭代完成后再返回?@Phil说得好。将在if
语句中包含break
。或者只包含returnkey
@Phil请参阅更新的帖子。能否进一步改善?