Javascript 使用不同的键迭代Json

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

我如何循环通过这个JSON对象找到一个特定的“id”键,并返回名称“outer key”?对不起,我对正确的名字不太熟悉

也就是说,搜索id“24”,然后在Javascript中获取“Jax”

{  
  "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请参阅更新的帖子。能否进一步改善?