2013-08-22 82 views
0

我想在JavaScript中为'循环'调用多个函数,但它们只是第一次被调用,并且循环终止。在JavaScript中为'循环'调用函数

我试图做的功能独特,由值传递给他们,使用一些通用的函数调用,如:

for(i=0; i<50; i++){ 
    alert('test'); 
    generator_function(i); 
} 


function generator_function(variable){ 
    function1(variable); 
    function2(variable); 
    function3(variable); 
    function4(variable); 
    var sum = local_array.reduce(function(a, b) { return a + b }); 
    var avg = sum/local_array.length; 
} 

这似乎工作,但当地阵列仍然从第一个持有的元素循环。

有没有更好的方式调用循环内的函数集合?我有全局数组在这些循环中被改变,我想知道他们是否需要在本地,即在某种程度上的功能?

+6

一个可能的问题是'为(I = 0; I <50;我+ + ){'这里''是一个全局变量,如果在任何一个函数内(我再次在全局范围内)'我的值变为> 50,那么循环将被终止。尝试'for(var i = 0; i <50; i ++){'而不是 –

+1

可以肯定:您只能看到一个警报?如果是这样,执行'generator_function'中的某个函数时可能会发生错误。你是否检查过控制台,应该有错误信息。 – Teemu

+0

这些函数可以正常工作。我认为@Arun可能正确地谈论循环中的局部变量。我有很多这些,并想知道为什么你需要'var'。我会进行一些测试,但可以随意将其作为答案。 – Jon

回答

2

一个可能的问题是for(i=0; i<50; i++){这里我是一个全局变量,如果里面的任何一个函数(其中i再次在全局范围内)将值更改为> 50,那么循环将终止,它们都引用相同的实例在全球范围内。改为尝试for(var i=0; i<50; i++){

当在一个变量声明使用var,该变量会在局部范围内(其中,声明它的函数)来创建

+0

似乎已经完成了这项工作,谢谢! – Jon