2011-08-28 77 views
0

也许我只是一直盯着这个屏幕太久,但我似乎无法弄清楚为什么这个for循环挂?Javascript - for loop挂?

var not = '3,7'; 
var nots = not.split(','); 
alert(nots.length); 
for (var i = 0; i <= nots.length; i++) { 
    nots[i] = parseInt(nots[i], 10); 
} 
document.write(nots); 

感谢您的任何帮助。

干杯
查理

+2

你有没有考虑过使用Firefox和Firebug。用于调试Javascript的优秀工具集。 –

回答

5

在循环你如果i <= nots.length测试。您应该测试是否i < nots.length

当长度为5时,会在索引0,1,2,3,4处出现元素。因此,当i达到5时,不再有元素。但是,然后您设置nots[i](元素5)并将数组扩展一个。因此,每次执行循环时,i等于nots.length,您将数组扩展一个,因此循环仅“再运行一次”,仅用于进一步扩展数组。

+0

当然!因为我来自一个原因,我不认为只计算到<。 Thankyou :) –

+0

避免这种情况的一个常用模式是for(var i = 0,l = nots.length; i user123444555621