-1

为什么我的全局数组值不能在 for 循环中使用,提供:

testing = [];


for (var x=0; x<10; x++){
    console.log(testing); 
}

“测试”变量用数组动态填充


这就是console.log(testing)的样子;*w/o for 循环 http://i.stack.imgur.com/xKhqA.png

这是填充数组的函数

     function showMyVideos(data)
    {
        var feed = data.feed;
        var entries = feed.entry || [];
         for (var i = 0; i < entries.length; i++)
        {
            var entry = entries[i];
            var vid = (getVideoId(entry.link[0].href));
            testing[i] = vid;
        }       
  console.log(testing)
    }

如果我在此函数中使用 console.log,这就是它的样子

http*//goo.gl/nVfQn

*用(冒号)替换(星号)以查看链接

为什么会这样,它只在函数范围内有效,而我已经在全局范围内声明了它

4

1 回答 1

1

那不是错误。这会在您的控制台中向您显示一个空数组,这正是您的testing声明的内容。

您可能没有收到任何条目,并且它正在初始化为空字符串。

 var entries = feed.entry || [];

然后当你尝试循环entries.length == 0

尝试做一个console.log(entries.length);在你的循环之前做一个。

尝试这个:

 testing = ["foo"];


for (var x=0; x<10; x++){
    console.log(testing);  
 }

您应该在控制台中看到如下内容:

 >["foo"]
 >["foo"]
 >["foo"]
  ...and so on
于 2013-01-31T21:18:46.643 回答