我发现我的代码中存在一个错误,希望通过最少的重构努力来解决.Chrome和Opera浏览器中会出现此错误.问题:
var obj = {23:"AA",12:"BB"};
//iterating through obj's properties
for(i in obj)
document.write("Key: "+i +" "+"Value: "+obj[i]);
Run Code Online (Sandbox Code Playgroud)
输出FF,IE键:23值:AA键:12值:BB
Opera和Chrome输出(错误)
键:12值BB
键:23值AA
我试图制作一个像这样的逆序对象
var obj1={"AA":23,"BB":12};
for(i in obj1)
document.write("Key: "+obj[i] +" "+"Value: "+i);
Run Code Online (Sandbox Code Playgroud)
但是输出是一样的.有没有办法通过小改动为所有浏览器提供相同的行为?
bob*_*nce 20
不,JavaScript对象属性没有固有的顺序.总运气是什么顺序for...in循环运作.
如果你想订购,你将不得不使用一个数组:
var map= [[23, 'AA'], [12, 'BB']];
for (var i= 0; i<map.length; i++)
document.write('Key '+map[i][0]+', value: '+map[i][1]);
Run Code Online (Sandbox Code Playgroud)