这个Javascript数组的正确顺序是什么?

这个Javascript数组的正确顺序是什么?,javascript,Javascript,在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 m

在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>

函数makeArray()
{
变量数组=[{5:'5',4:'4',1:'1',3:'3',2:'2'}];
var msg='';
for(数组[0]中的var val)
{
msg=msg+val;
}   
警报(msg);
}
背景故事。。。
在(我们当前的bug跟踪系统)中,许多列表(用户、模块等)使用与上述类似的格式进行排序。这使得查找内容变得非常困难和烦人,除非您使用FireFox。我的兴趣纯粹是学术性的,我之所以这么问是因为我想知道哪个浏览器是正确的。

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


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

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


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

实际上,您在问:当使用
循环进行迭代时,对象文本中的属性顺序是什么?数组在这里不相关

答案是:未指定。大多数情况下,它将与您在代码中看到的相同,但无法保证

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


实际上,您是在问:当使用
循环进行迭代时,对象文本中的属性顺序是什么?数组在这里是不相关的

答案是:未指定。大多数情况下,它将与您在代码中看到的相同,但无法保证

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


不是我在做这件事——这只是我一直在使用的bug追踪器的代码。不是我在做这件事——这只是我一直在使用的bug追踪器的代码。实际上,数组中只有一个项——以及具有5个属性的对象。所以我认为正确的表达方式是“对象中属性的正确顺序是什么?”你可以在这里找到关于对象中迭代顺序的更多信息?实际上,数组中只有一个项,而对象有5个属性。所以我认为正确的表达方式是“对象中属性的正确顺序是什么?”你可以在这里找到关于对象中迭代顺序的更多信息?谢谢,我只是不知道该搜索什么-我不是网络开发者:)谢谢,我只是不知道该搜索什么-我不是网络开发者:)