javascript - JavaScript array.forEach 是否按升序遍历元素

标签 javascript arrays sorting foreach

在 JavaScript 中,我可以有一个带有空洞的数组:

a = [];
a[0] = 100;
a[5] = 200;
a[3] = 300;

a.forEach(function(x) {alert(x);});

我找不到有关元素是否按升序处理的信息,或者这不是可靠的事实。

我检查过“for .. in”循环以升序遍历数组索引,而对象的属性名称以它们添加到对象的相同顺序遍历(至少看起来如此)。

(即看起来数组是某种内部树,而对象是哈希表。)

我刚发现 Rhino JavaScript 也会遍历不存在的元素: http://ideone.com/7Z3AFh (与 for..in 不同)。

最佳答案

ECMA-262, 5th edition规范和 MDN's Array.forEach() page两者都显示了 .forEach() 的算法,并且它肯定会按升序索引顺序遍历数组元素(跳过从未分配过值的索引)。

当然,有些浏览器可能无法正确实现该算法,但我不知道有哪些浏览器不能正确实现。

关于javascript - JavaScript array.forEach 是否按升序遍历元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600922/

相关文章:

java - 按 Integer 属性对列表进行排序时,无法取消引用 int

javascript - 从 iframe 关闭父弹出窗口

javascript - jQuery 日期选择器不显示绑定(bind)日期

javascript - 通过检查作用域变量在 Angular.js 中进行过滤

javascript - Jquery 自动完成没有结果附加为下拉子问题

php - 序列化复选框数组

javascript - 需要显示for循环数组中的所有数字

javascript - JS 对象数组,按时间戳对值进行分组

php - 如何将 php 关联数组排序为特定顺序?

ruby-on-rails - 在 Rails View 中排序而不显示重复项