排序字典的关键:值对在javascript

Sort dictionary of key:value pairs in javascript

本文关键字:javascript 字典 排序      更新时间:2023-09-26

我有一个字典,里面有一些键值对,如下所示。

rank = {
            "Team 1" : 34,
            "Team 2" : 55,
            "Team 3" : 29,
            "Team 4" : 61,
            ...
        }

键是球队名称,值是赛季结束时的积分,所以我想根据它们的值对组合进行排序,以便打印最终排名。

有人能帮帮我吗?提前感谢

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由小到大排序。请注意,您不能将其转换回对象,否则将丢失顺序。