【问题标题】:Difference between a basic for-loop and a for-in-loop in JavaScript [duplicate]JavaScript中基本for循环和for循环之间的区别[重复]
【发布时间】:2012-08-30 19:51:15
【问题描述】:

可能重复:
JavaScript “For …in” with Arrays

在什么情况下使用

for (var i = 0; i < array.length; i++)

不同于使用

for (var i in array)

在 JavaScript 中?

【问题讨论】:

标签: javascript for-loop for-in-loop


【解决方案1】:
for (var i = 0; i < array.length; i++)

最适合遍历数组,按顺序访问所有数组元素。

在现代 javascript 引擎上,array.forEach 通常更干净。

for (var i in object) // with object.hasOwnProperty

用于遍历 OBJECT 的可枚举属性,包括继承的可枚举属性。订单不放心。尽管数组是一个对象,并且此方法对数组“有效”,但它并不理想,因为返回的属性可能没有任何特定的顺序。此外,如果在数组对象上放置了猴子补丁或垫片,它们可以显示在这里。

【讨论】:

  • 这就是人们将 Javascript 属性与关联数组混淆的原因。它们确实有许多共同点,包括能够迭代它们。现在,当然,并非所有属性都可以迭代。宿主对象遵循自己的规则,strict mode 提供了创建一些属性的选项DontEnum
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 2011-01-24
  • 1970-01-01
  • 2012-02-09
  • 2017-01-05
  • 1970-01-01
  • 2021-05-12
相关资源
最近更新 更多