首页 > 解决方案 > for 循环内的 for 循环给出奇怪的结果

问题描述

我有一个程序,其中我在 for 循环中有一个 for 循环。我在最后一个 array.push 中得到的结果是 Albumtitle 始终是第一个 for 循环的最后一个结果。当我循环进入 chrome 控制台时,我看到第一个 for 循环在我看到它进入第二个 for 循环之前提供了例如 3 个结果。我是在错误地使用 for 循环还是代码中存在问题?

 selected_artist(id){

  this.musicservice.get_artist_albums(id).subscribe(payload => { 
      this.tracks_to_play=[];
      this.albums=[]=payload.MediaContainer.Metadata;
      this.test=[];
        for (this.i_albums=0; this.i_albums<this.albums.length; ++this.i_albums) {
          this.albumtitle=this.albums[this.i_albums].title;
          this.musicservice.get_artist_albums(this.albums[this.i_albums].key).subscribe(tracks_data => { 
            this.tracks=tracks_data.MediaContainer.Metadata;
            this.art=tracks_data.MediaContainer.thumb;
              for (this.i_tracks=0; this.i_tracks<this.tracks.length; ++this.i_tracks) {
                this.tracks_to_play.push({Key: this.tracks[this.i_tracks].Media[0].Part[0].file,  Title: this.tracks[this.i_tracks].title,  Duration: this.tracks[this.i_tracks].Media[0].Part[0].duration}); 
                }
            this.test.push({AlbumTitle : this.albumtitle, Tracks: this.tracks_to_play })
            this.tracks_to_play=[];
            console.log(this.test);
      this.album_selected=true; 
      this.album_selected=true; 
});
     }
});

}

标签: angulartypescriptfor-loop

解决方案


推荐阅读