簡體   English   中英

如何在 JSON 中查找鍵的值

[英]How to find the value of a key in 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,因為我發現這種方式更快。

知道如何使它工作嗎?

提前致謝

沒有辦法不使用循環。 如果您想提高效率,您應該采用 for 循環的命令式方法並通過匹配中斷。

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

希望這可以幫助。

要在不循環的情況下從數組中獲取特定元素,您必須知道它的索引。 你能做的最好的事情是只循環一次數組,將每個標題映射到數組中元素的索引,這是一個例子:

 const arr = [{ "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" }] const map = arr.reduce((a, c, index) => { a[c.title] = index; return a; },{}); function getImage(title) { if (!isNaN(map[title])) { return arr[map[title]].image; } } console.log(getImage('title5'));

在此示例中,我使用了普通數組而不是 jQuery 對象。 我假設數組不會改變,如果你要改變數組的內容,你必須保持地圖同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM