Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量为';t在for循环中改变-JavaScript_Javascript_Variables_For Loop_Scope - Fatal编程技术网

变量为';t在for循环中改变-JavaScript

变量为';t在for循环中改变-JavaScript,javascript,variables,for-loop,scope,Javascript,Variables,For Loop,Scope,为什么输出的每个feedName都是相同的名称(MedryBW)?我已经花了一段时间搞砸了,弄不明白。我希望它在循环的每个迭代中输出提要的名称,而不是一次又一次地重复相同的名称。谢谢大家 var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeat

为什么输出的每个feedName都是相同的名称(MedryBW)?我已经花了一段时间搞砸了,弄不明白。我希望它在循环的每个迭代中输出提要的名称,而不是一次又一次地重复相同的名称。谢谢大家

var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeath", "MedryBW"];

$(document).ready(function(){
    for(x = 0; x < feeds.length; x++){
        var feedName = feeds[x];
        $.getJSON('https://api.twitch.tv/kraken/streams/' + feeds[x] + '?callback=?', function(data) {
            if(data.stream === null){
                $('#feeds').append("<p>" + feedName + " is offline </p>");
            } else {
                $('#feeds').append("<p>" + feedName + " is streaming "  (data.stream.game) + "/<p>");
            }
        });
    }
});
var feeds=[“Towellie”、“TrumpSC”、“TeamSp00ky”、“TwitchPlay Spokeon”、“Widgitybear”、“AriaBlarg”、“TheMexicanRunner”、“OPNerd”、“rabbitbong”、“Wingsofdeath”、“MedryBW”];
$(文档).ready(函数(){
对于(x=0;x”;
}否则{
$(“#feeds”).append(“”+feedName+”正在流化”(data.stream.game)+“/”;
}
});
}
});

在for循环中编写Ajax时,成功回调在for循环执行后执行

var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeath", "MedryBW"];

$(document).ready(function() {
  feeds.forEach(function(feedName) {
    $.getJSON('https://api.twitch.tv/kraken/streams/' + feedName + '?callback=?', function(data) {
      if (data.stream === null) {
        $('#feeds').append("<p>" + feedName + " is offline </p>");
      } else {
        $('#feeds').append("<p>" + feedName + " is streaming " + (data.stream.game) + "/<p>");
      }
    });

  });
})
var feeds=[“Towellie”、“TrumpSC”、“TeamSp00ky”、“TwitchPlay Spokeon”、“Widgitybear”、“AriaBlarg”、“TheMexicanRunner”、“OPNerd”、“rabbitbong”、“Wingsofdeath”、“MedryBW”];
$(文档).ready(函数(){
feeds.forEach(函数(feedName){
$.getJSON('https://api.twitch.tv/kraken/streams/“+feedName+”?回调=?”,函数(数据){
if(data.stream==null){
$(“#feeds”).append(“”+feedName+”处于脱机状态

”; }否则{ $(“#feeds”).append(“”+feedName+”正在流“+(data.stream.game)+”/”; } }); }); })

上面的更改将起作用

因为回调函数运行得更晚,而不是在循环中,并且它只是在循环完成后获取变量值(最后一个值),请使用
bind
函数将变量传递给函数

var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeath", "MedryBW"];

$(document).ready(function() {
    for(x = 0; x < feeds.length; x++){
        var feedName = feeds[x];
        $.getJSON('https://api.twitch.tv/kraken/streams/' + feeds[x] + '?callback=?', function(feedName, data) {
            if (data.stream === null) {
                $('#feeds').append("<p>" + feedName + " is offline </p>");
            }else{
                $('#feeds').append("<p>" + feedName + " is streaming " + (data.stream.game) + "/<p>");
            }
        }.bind(this, feedName));
    }
});
var feeds=[“Towellie”、“TrumpSC”、“TeamSp00ky”、“TwitchPlay Spokeon”、“Widgitybear”、“AriaBlarg”、“TheMexicanRunner”、“OPNerd”、“rabbitbong”、“Wingsofdeath”、“MedryBW”];
$(文档).ready(函数(){
对于(x=0;x”;
}否则{
$(“#feeds”).append(“”+feedName+”正在流“+(data.stream.game)+”/”;
}
}.bind(这个,feedName));
}
});

您可以通过以下方式实现这一点

var feeds = ["Towellie", "TrumpSC", "TeamSp00ky", "TwitchPlaysPokemon", "Widgitybear", "AriaBlarg", "TheMexicanRunner", "OPNerd", "rabbitbong", "Wingsofdeath", "MedryBW"];

        $(document).ready(function(){
        var divText;
        for(x = 0; x < feeds.length; x++){
            var feedName = feeds[x];
            $.getJSON('https://api.twitch.tv/kraken/streams/' + feeds[x] + '?callback=?', function(data) {
          if(data.stream === null){
         divText = divText + '<p>'+feedName+' is offline </p>';
          }else{
         divText = divText + '<p>'+feedName+' is streaming '+(data.stream.game) +'</p>'
        }
        });
        }
     $('#feeds').append(divText); 
     //or $('#feeds').html(divText); 

        })
var feeds=[“Towellie”、“TrumpSC”、“TeamSp00ky”、“TwitchPlay Spokeon”、“Widgitybear”、“AriaBlarg”、“TheMexicanRunner”、“OPNerd”、“rabbitbong”、“Wingsofdeath”、“MedryBW”];
$(文档).ready(函数(){
var-divText;
对于(x=0;x';
}否则{
divText=divText+''+feedName+'正在传输'+(data.stream.game)+'

' } }); } $(“#提要”).append(divText); //或$('#feeds').html(divText); })