如何從後到前迭代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