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