【问题标题】:What is the correct Ordering of this Javascript Array?这个 Javascript 数组的正确顺序是什么?
【发布时间】:2023-03-09 09:30:01
【问题描述】:

在 Firefox 中,输出是按字母顺序排列的(即它们被声明的顺序)。在 IE 和 Chrome 中,它们是数字的。所有最新版本。

哪个是正确的?

<html>
<head></head>
<body>
<script type="text/javascript">
function makeArray()
{
    var array = [{5:'Five',4:'Four',1:'One',3:'Three',2:'Two'}];
    var msg = '';

    for (var val in array[0])
    {
        msg = msg + val;
    }   
    alert(msg);
}
</script>
<input type="button" onClick="makeArray();" value="Press Me" />
</body>
</html>

背景故事... 在SpiraTeam(我们当前的错误跟踪系统)中,许多列表(用户、模块等)使用与上述类似的格式进行排序。除非您使用 FireFox,否则这会使查找内容变得非常困难和烦人。我的兴趣纯粹是学术上的,我只是问,因为我想知道哪个浏览器是正确的。

【问题讨论】:

标签: javascript


【解决方案1】:

其实你在问:使用for循环进行迭代时,对象字面量中的属性顺序是什么?这里的数组是无关紧要的。

答案是:未指定。大多数情况下它会和你在代码中看到的一样,但不能保证。

这个问题已经被问了数百次了:

【讨论】:

  • 谢谢,我只是不知道要搜索什么 - 我不是网络开发人员 :)
【解决方案2】:

您的问题似乎是您不是在迭代一个数组,而是一个对象......

ECMA 似乎没有在第 5 步中定义如何进行此操作...(按字母顺序、数字等)

【讨论】:

  • 不是我在做这件事——这只是我一直使用的错误跟踪器的代码。
猜你喜欢
  • 2017-06-28
  • 2010-11-27
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
相关资源
最近更新 更多