无法在for循环内访问全局数组值

时间:2013-01-31 21:16:44

标签: javascript

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

testing = [];


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

&#34;测试&#34;变量动态填充数组


这是 console.log(测试)的样子; * 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

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

  

为什么会这样,它只在函数范围内工作,而我在全局声明它

1 个答案:

答案 0 :(得分: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