【发布时间】:2013-08-14 07:04:11
【问题描述】:
我发现在 JavaScript 中创建大量对象时,while 循环是调整性能的最佳工具。
这样编写循环时我的速度最快:
var i = array.length
while (i--) {
// Do stuff
}
但是,如果我想嵌套一个while循环,我必须使用不同的变量名,否则计数器会中断:
var i = array1.length
while (i--) {
var i = array2.length
while (i--) {
// NOPE THE COUNTER IS NOW BROKEN
}
}
有些人建议j,但那为什么不从第一个数组开始用一个名为a 的变量并从那里向上呢?
在这种情况下最好的做法是什么?
有没有办法delete 变量使其在辅助作用域中不可用?
【问题讨论】:
-
看不出有什么问题,为什么很难创建两个变量?
-
@Sergio:在自动生成的代码中可能很烦人
-
@Jackson -- 对于自动生成的代码,我会使用半随机变量名...通常类似于
$$_nameof_of_function_loopNumber -
@JeremyJStarcher:如果变量被 do stuff 部分中的闭包捕获(并且您希望 value capture 而不是变量捕获)。
-
@6502 - 是的,但是在循环中间的匿名函数的性能影响已经足够了,我不会在需要之前推荐它。嗯..即使那样我也怀疑我会推荐它,并建议将东西放在一个命名函数中调用。
标签: javascript loops while-loop