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 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,则将变量设置为该对象的属性名称; break 循环或从 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);

关于javascript - 使用不同的键迭代 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335348/

相关文章:

javascript - 如何在 Jquery Ajax 中使用 Json 数据

javascript - 如何在没有 axios 的情况下用纯 JavaScript 设置 token 的全局 header

java - GSON解析改变json数据

android - JSON:如何处理这样的 JSON 响应?

javascript - vue 2 过滤多个数组

json - 如何在内存中存储 2 - 3 GB 的树并让 nodejs 可以访问它?

python - 将 json 对象与 csv 文件进行比较

javascript - 从 onclick 事件获取特定的 div id(纯 JS 无 Jquery)

javascript - 图表数据缩放无法读取未定义的属性 'length'

javascript - 缓存 JavaScript API 调用