遍历javascript中的数组

1. 最佳answer

for in是用来迭代对象的属性的,用来遍历数组可能会出现各种问题,所以还是用传统的for i=0; i<length;i++。。 
我在代码中看到的 

?

1

2

3

4

5

6

var modules = ['aaa','bbb'];

for(var i in modules){

  if (modules.hasOwnProperty(i)){

    // do something here

  }

}


如果这样去遍历数组,则i的值是数组的索引0, 1, 2 ... 但是如果有人像下面这样修改了Array的原型,则for in就会挂掉。: 

?

1

2

3

4

5

6

Array.prototype.foo = "foo!";

var array = ['a', 'b', 'c'];

 

for (var i in array) {

  alert(array[i]);

}

 简单解释欢迎提建议:for i=0; i<length;i++ 循环  取到数组长度,到长度-1就不继续往下循环控制住,而for in 是在数组中找不到,会继续往原型链中找,知道原型链中没有值。

你可能感兴趣的:(遍历javascript中的数组)