如何根据值对哈希图进行排序?

Aru*_*han 8 javascript lodash

这是我的哈希图

{
"LY": 43,
"US": 19,
"IN": 395,
"IR": 32,
"EG": 12,
"SA": 17,
}
Run Code Online (Sandbox Code Playgroud)

如何使用 javascript/lodash 对键值按降序排序?

预期输出是:

{
"IN": 395,
"LY": 43,
"IR":32,
"US":19,
"SA":17,
"EG":12
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*ush 5

使用不同的数据结构

您无法控制按键顺序Object

当需要对数据进行排序时,你可以使用数组,

var obj = {
  "LY": 43,
  "US": 19,
  "IN": 395,
  "IR": 32,
  "EG": 12,
  "SA": 17,
};

var array = [];
for (var key in obj) {
  array.push({
    name: key,
    value: obj[key]
  });
}

var sorted = array.sort(function(a, b) {
  return (a.value > b.value) ? 1 : ((b.value > a.value) ? -1 : 0)
});
Run Code Online (Sandbox Code Playgroud)