我必须以相反的顺序从 javascript 对象中检索密钥。
例如,
$.each()
按声明的顺序检索,
输出必须是thanx :)
var a={'b':1,'c':2};
{'c':2,'b':1}
问问题
1667 次
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 回答