角度 2 for i= 总是 20 帮助我伙计们这里出了什么问题



你可以在这里看到我的代码它这个控制台.log(parti+" "+ i(;我总是返回 20 个错误,我的代码只是对我说 ı 看不到请.谢谢。

        for(var i=0;i<=20;i++){
          this.http.get("https://tr1.api.riotgames.com/lol/match/v3/matches/"+data.matches[i].gameId+"?api_key="+this.apikey).map(res=> res.json()).subscribe(data => {
for(var c=0;c<=9;c++){
  if  (data.participantIdentities[c].player.summonerName.toUpperCase().replace(/s/g, '')==ev.toUpperCase().replace(/s/g, '')){
    var parti=data.participantIdentities[c].participantId;
console.log(parti+" "+ i);
console.log(data.participants[parti-1].stats.win)
this.virtual.push({gameid: this.matches[i].gameId , champion: this.matches[i].champion,time : this.matches[i].timestamp,win:data.participants[parti-1].stats.win}) ;
}
  
}
console.log(data);
  });
        }

当来自 GET 调用的数据到达时,将调用您的回调函数。但是,这是在代码(包括循环(运行之后,因此 i 的值为 20。解决此问题的最简单方法是从外部循环中调用一个单独的函数并传入当前索引。该函数会将该值捕获为参数,该参数将在运行回调时在范围内。

for(var i=0;i<=20;i++) {
    getData(i);
 }
function getData(i) {
  this.http.get("https://tr1.api.riotgames.com/lol/match/v3/matches/"+data.matches[i].gameId+"?api_key="+this.apikey).map(res=> res.json()).subscribe(data => {
for(var c=0;c<=9;c++){
  if  (data.participantIdentities[c].player.summonerName.toUpperCase().replace(/s/g, '')==ev.toUpperCase().replace(/s/g, '')){
    var parti=data.participantIdentities[c].participantId;
console.log(parti+" "+ i);
console.log(data.participants[parti-1].stats.win)
this.virtual.push({gameid: this.matches[i].gameId , champion: this.matches[i].champion,time : this.matches[i].timestamp,win:data.participants[parti-1].stats.win}) ;
}
}

类似的东西。

相关内容

  • 没有找到相关文章

最新更新