0



我必须以相反的顺序从 javascript 对象中检索密钥。 例如,
$.each()按声明的顺序检索, 输出必须是thanx :)



var a={'b':1,'c':2};
{'c':2,'b':1}

4

2 回答 2

3

JavaScript 对象在迭代时没有保证键的顺序。JavaScript 是否保证对象属性顺序?

如果必须依赖顺序,则必须使用数组。不要误以为您可以依赖这种未指定的行为。人们一直在要求 chrome 使迭代可靠,但他们不会。http://code.google.com/p/chromium/issues/detail?id=883被标记为不会修复,因为 JavaScript 从不保证它。

于 2012-09-13T08:24:57.497 回答
1

利用:

$(_array).reverse().each(function(i) {
// ...
});

对于对象,您可以执行以下操作:

var a = {a: 2, b: 1};

console.log('Declared order');
$.each(a, function(i) {
    console.log(i+': '+a[i]);
});

console.log('Reverse order');
var keys = [];
for(var k in a) keys.unshift(k);
$.each(keys, function(i) {
    console.log(keys[i]+': '+a[keys[i]]);
});

演示:http: //jsfiddle.net/techfoobar/5kduC/

于 2012-09-13T08:22:05.903 回答