javascript:按实际顺序获取对象项

ali*_*ali 1 javascript object

我需要得到简单的javascript abject的真实顺序,但我从这段代码得到错误的答案:

var Obj={"x":"z", "2":"a", "1":"b"};
for(i in Obj)
    document.write(Obj[i]+"<br>");
Run Code Online (Sandbox Code Playgroud)

我希望看到z,a,b的答案,但我得到b,a,z
见行动代码: http://jsfiddle.net/gpP7m/

Den*_*ret 6

对象键迭代中没有保证的顺序.

for ... in循环以任意顺序迭代对象的属性

如果需要,请使用键/值元素数组:

var obj=[
   {key:"x", value:"z"},
   {key:"2", value:"a"}
];

for (var i=0; i<obj.length; i++) document.write(obj[i].value+'<br>');
Run Code Online (Sandbox Code Playgroud)

在现代浏览器(不是IE8)上,您可以:

document.write(obj.map(function(kv){ return kv.value }).join('<br>'));
Run Code Online (Sandbox Code Playgroud)

(它不完全相同,但可能做你想要的)