Javascript 检索键,使用jQuery.each按相反顺序返回值

Javascript 检索键,使用jQuery.each按相反顺序返回值,javascript,jquery,each,Javascript,Jquery,Each,我必须以与javascript对象相反的顺序检索键。 $.each()按声明的顺序检索 例如, var a={'b':1,'c':2} 输出必须是{'c':2,'b':1} thanx:)使用: $(_array).reverse().each(function(i) { // ... }); 对于对象,可以执行以下操作: var a = {a: 2, b: 1}; console.log('Declared order'); $.each(a, function(i) { cons



我必须以与javascript对象相反的顺序检索键。
$.each()
按声明的顺序检索

例如,

var a={'b':1,'c':2}
输出必须是
{'c':2,'b':1}

thanx:)

使用:

$(_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]]);
});
演示:

使用:

$(_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]]);
});

演示:

JavaScript对象在迭代时没有保证键的顺序


如果必须依赖顺序,则必须使用数组。不要上当受骗,以为你可以依靠这种未指明的行为。人们一直要求chrome使迭代更可靠,但他们不打算这样做。被标记为不会修复,因为JavaScript从未保证它

JavaScript对象在迭代时没有保证键的顺序


如果必须依赖顺序,则必须使用数组。不要上当受骗,以为你可以依靠这种未指明的行为。人们一直要求chrome使迭代更可靠,但他们不打算这样做。被标记为不会修复,因为JavaScript从未保证它

这不是数组,请参见我的编辑。但是请注意,对于顺序(尽管在大多数情况下,您将按照您声明的顺序获得)没有任何保证您将遇到麻烦的情况(从今天起,肯定会更改):如果属性名称以整数开头,或者如果您删除并再次添加相同的属性。是的,迭代时不依赖属性的顺序更安全。这不是数组,javascript对象请参见我的编辑。但是请注意,对于顺序(尽管在大多数情况下,您将按照您声明的顺序获得)没有任何保证您将遇到麻烦的情况(从今天起,肯定会更改):如果属性名称以整数开头,或者如果您删除并再次添加相同的属性。是的,迭代时不依赖属性的顺序更安全。如果它不遵循顺序,那么为什么$.each()按我们声明的顺序提供键、值对?如果它不遵循顺序,那么为什么$.each()按我们声明的顺序提供键、值对??