【问题标题】:Error handling when iterating through an array遍历数组时的错误处理
【发布时间】:2013-07-29 22:14:09
【问题描述】:

这里是新手。我编写了一个简单的测试函数,它遍历一堆歌曲列表,并为每个列表尝试从 Last.fm API 获取专辑封面图像。如果它不起作用,它应该在控制台中显示曲目和艺术家姓名。然而,当我运行它时,它总是显示相同的艺术家/曲目对,即最后一个迭代的,而不是触发错误的特定的。我不确定发生了什么事。

$(document).ready(function(){
array = []
for (var item in billboard) {
  var track = billboard[item]['song'];
  var artist = billboard[item]['artist'];
  $.getJSON("http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=myAPIkey&artist=" + artist + "&track=" + track + "&format=json&callback=?", function(data) {
      try{
        image = data.track.album.image[2]['#text'];
      }
      catch (err) {
        console.log(track + " - " artist);
        }
      });
    }
});


 var billboard = {

 "7-12-1986": {"artist": "Simply Red", "song": "Holding Back The Years"},
"6-28-1986": {"artist": "Patti LaBelle ", "song": "On My Own"},
 "7-5-1986": {"artist": "Billy Ocean", "song": "There'll Be Sad Songs (To Make You Cry)"},
 .....
 }

【问题讨论】:

  • 啊,看起来这是一个范围界定问题。我把它改成:
  • $(document).ready(function(){ array = [] for (var item in billboard) { var track = billboard[item]['song']; var artist = billboard[item ]['artist']; getAlbum(track, artist) function getAlbum(track, artist) { $.getJSON("ws.audioscrobbler.com/2.0/…" + artist + "&track=" + track + "&format=json&callback=?", function( data) { try{ image = data.track.album.image[2]['#text']; } catch (err) { console.log(artist + track + "
    "); ...跨度>

标签: javascript jquery error-handling iteration


【解决方案1】:

看看for and for in的区别

我认为在这种情况下你应该使用标准的 for 循环。

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多