相关疑难解决方法(0)

JavaScript是否保证对象属性顺序?

如果我创建这样的对象:

var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";
Run Code Online (Sandbox Code Playgroud)

生成的对象总是这样吗?

{ prop1 : "Foo", prop2 : "Bar" }
Run Code Online (Sandbox Code Playgroud)

也就是说,属性是否与我添加它们的顺序相同?

javascript object

584
推荐指数
11
解决办法
20万
查看次数

按顺序迭代javascript对象

这是情况.我有一个JavaScript对象,我需要遍历它,但顺序是非常重要的维护.我知道JavaScript对象应该是无序的,但我希望有一些JavaScript等效于以下内容:http://docs.python.org/2/library/collections.html#collections.OrderedDict

这是原始订购

{
  082013: {'A': 1, 'B', 3}
  092013: {'A': 2, 'B', 4}
  102013: {'A': 8, 'B', 2}
  112013: {'A': 92, 'B', 67}
  122013: {'A': 64, 'B', 32}
}
Run Code Online (Sandbox Code Playgroud)

然后我迭代它:

aArray = [];
bArray = [];
$.each(data, function(key, value) {
   aArray.push(value.A);
   bArray.push(value.B);
});
Run Code Online (Sandbox Code Playgroud)

结果(特别是在chrome上)似乎渲染更像这样:

aArray = [8, 92, 64, 1, 2];
bArray = [2, 67, 32, 3, 4];
Run Code Online (Sandbox Code Playgroud)

这意味着它不按顺序迭代,或按最小到最大的顺序进行迭代(102013,112013,122013,092013,082013)

那么我怎么能按顺序迭代这个对象,如果我可以的话呢?

javascript

3
推荐指数
1
解决办法
1715
查看次数

这个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 msg = '';

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

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

javascript

1
推荐指数
1
解决办法
104
查看次数

标签 统计

javascript ×3

object ×1