for()的奇怪javascript行为

时间:2011-04-04 04:47:41

标签: javascript jquery arrays for-loop

我有这样的功能:

var dostuff = function(thing){
  var count = myvar.length; // <- I know for sure it's larger than 1
  for (i = 0; i < count; i++)
    whatever(myvar[myvar.length - 1]);
},
...
dostuff(thing);
...

问题是for循环只执行whatever()一次,即使count变量是4,10,20,100 ......

我在这里做错了什么?

4 个答案:

答案 0 :(得分:5)

不确定您要执行的操作,但是,如果您想为whatever中的每个项目调用myvar函数,则应使用此功能:

  for (i = 0; i < count; i++)
    whatever(myvar[ i ], thing);

请注意i而不是myvar.length - 1

答案 1 :(得分:4)

做什么()也有一个带“i”变量的循环?它可能是全局设置我。你应该声明我是dostuff函数的本地函数,并使用大括号来保持良好的卫生:

for(var i= 0; i < count; i++) {  
    whatever(...);
}

答案 2 :(得分:1)

您是否尝试过 alert() myvar.length的值? myvar也是一个全局变量吗? Pascal是对的你可能想要使用i,因为它的值将通过你的myvar对象计算,除非myvar的长度改变了什么函数?

答案 3 :(得分:1)

对我而言,没有任何事情显然是错误的,但我开始的是:

  • 一些调整,只是为了确定:
for (**var** i = 0; i < count; i++) **{**
  whatever(...);
**}**
  • Pascal说的话:-D

我想我是一个缓慢的人!