JavaScript中的對象鍵和值沒有固有順序。在將它們分類爲所需順序之前,您需要將它們存儲在有序結構中。
讓我們的項目到Array
,裏面確實有內在的順序:
var object = {
a: 1,
b: 5,
c: 2
}
var keyValues = []
for (var key in object) {
keyValues.push([ key, object[key] ])
}
的keyValues
陣列現在持有['a', 1], ['b', 5], ['c', 2]
。讓我們排序該陣列中,每對使用所述第二值進行比較:
keyValues.sort(function compare(kv1, kv2) {
// This comparison function has 3 return cases:
// - Negative number: kv1 should be placed BEFORE kv2
// - Positive number: kv1 should be placed AFTER kv2
// - Zero: they are equal, any order is ok between these 2 items
return kv1[1] - kv2[1]
})
現在keyValues
從較小分揀至更大。請注意,您無法將其轉換回對象,否則訂單將會丟失。
將它轉換爲數組,然後排序 – k102
您可能會在這裏找到你的迴應: http://stackoverflow.com/questions/25500316/sort-a-dictionary-by-value-in-javascript – L01c
因此它通常更容易使用var rank = [{'name':'Team 1','value':34},{'name':'Team 2','value':55},...];'然後您可以使用所有的數組善舉排序/篩選/映射您的數據。 – Shilly