首页 > 解决方案 > 如何在 JSON 中查找键的值

问题描述

我有以下 JSON 并且在每个对象中都有一个艺术家和图像值。我想要一种机制,当我给出艺术家的名字时,它会返回同一对象中图像的值。所有对象都以 JSON 格式在数组中变形。

var iTunes_data = $([{
    "title": "title1",
    "image": "images/image1.jpg"
  },
  {
    "title": "Hotel California [Rainwave Chiptunes]",
    "image": "images/image2.jpg"
  },
  {
    "title": "The Multi-Story Car Park [Rainwave Chiptunes]",
    "image": "images/image3.jpg"
  },
  {
    "title": "title4",
    "image": "images/image4.jpg"
  },
  {
    "title": "title5",
    "image": "images/image2.jpg"
  }
]);

function getImage(currentTitle) {
  let url =  iTunes_data.filter(element => element.title === currentTitle);
  
  return url[0].image;
}
console.log(getImage("title5"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

所以当我要求时,title5我想得到images/image2.jpg.

我不想使用任何循环。它必须更多地通过找到键并获取值而不是通过循环遍历 JSON,因为我发现这种方式更快。

知道如何使它工作吗?

提前致谢

标签: javascriptjqueryjsonobjectfilter

解决方案


没有办法不使用循环。如果您想提高效率,您应该使用 for 循环和匹配中断的命令式方法。

for(let obj in data) {
  if(obj.title === title)
    // match
    break
}

希望这可以帮助。


推荐阅读