Для цикла внутри для цикла, дающего странные результаты - PullRequest
0 голосов
/ 27 октября 2019

У меня есть программа, в которой у меня есть цикл for внутри цикла for. В результате в последнем файле array.push я получаю то, что Albumtitle всегда является последним результатом первого цикла for. Когда я зацикливаюсь на консоли chrome, я вижу, что первый цикл for доставляет, например, 3 результата, прежде чем я вижу, как он входит во второй цикл for. Я неправильно использую циклы 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; 
});
     }
});

}
...