JavaScript获得数组大小效率

时间:2015-10-07 21:37:00

标签: javascript c++

我从w3schools here

中读到以下内容
Bad Code:
for (i = 0; i < arr.length; i++) {

Better Code:
l = arr.length;
for (i = 0; i < l; i++) {

我在学校学过C ++和Java,但我从未意识到这是我们需要考虑的效率问题。是不是只获得了O(1)操作的数组大小?这种优化是否真的有必要,它真的是人们在工业界做的事情吗?

编辑:

鉴于数组的大小不会发生变化。

1 个答案:

答案 0 :(得分:4)

是的,得到的长度是O(1),但它不是通常优化的,因为在循环期间阵列长度可以改变。

如果我知道数组长度不会改变,我的首选语法是:

for (var i = 0, n = arr.length; i < n; ++i) 

像往常一样,w3schools忽略了这一点 - 他们引用的第一个版本并不是总是错误的代码,因为如果修改了数组长度,那么代码可能正是如此在循环中。