如何从后到前迭代javascript对象。反向对象迭代(javascript)
对象看起来像这样。 {"33":140, "34":100, "35":120, "36":200}
我希望它显示像这样...
36 | 200
35 | 120
34 | 100
33 | 140
我想先进行排序,然后显示,但它按第二个数字,而不是重点。 我将如何从后到前迭代,或基于密钥进行反向排序。
我意识到这是非常简单的,但是我得到它非常沮丧....
如何从后到前迭代javascript对象。反向对象迭代(javascript)
对象看起来像这样。 {"33":140, "34":100, "35":120, "36":200}
我希望它显示像这样...
36 | 200
35 | 120
34 | 100
33 | 140
我想先进行排序,然后显示,但它按第二个数字,而不是重点。 我将如何从后到前迭代,或基于密钥进行反向排序。
我意识到这是非常简单的,但是我得到它非常沮丧....
一个相当现代的版本是这样的:
Object.keys(obj).sort(function (a, b) {
return Number(b) - Number(a);
}).forEach(function (current) {
console.log(current + ' | ' + obj[current]);
});
类似的,但多一点点代码,它也可以用于旧版浏览器。或者你使用垫片。
这真的很接近OP实际需要的东西('console.log(obj [current])') – bfavaretto
他想记录两者。我只是觉得我不会把所有的乐趣都拿出来。它解决了实际问题,他可以处理输出。 –
谢谢!! ...非常高效,紧凑.....比我正在忙着烹饪的解决方案好得多......依靠交替阵列和两个循环,在繁琐的功能 – KyleK
迭代对象属性时无法保证订单。而且你不能排序对象。我相信你将不得不使用一组对象,并对其进行排序。 – bfavaretto
@bfavaretto正确,对象没有排序 - 但我们确定可以使用这些键,对它们进行排序并使用它(请参阅我的答案)。 –
@IngoBürk我做了,并upvoted你的答案。这确实是最好的方法。 – bfavaretto