javascript - 如何根据值对 HashMap 进行排序?

标签 javascript lodash

这是我的hashmap

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

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

预期的输出是:

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

最佳答案

使用不同的数据结构

您无法控制 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)
});

关于javascript - 如何根据值对 HashMap 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34940099/

相关文章:

Javascript 多组数据,如 sql group by 和 sum

node.js - isEqual vs isMatch - isMatch 是否忽略嵌套数组元素的顺序?

javascript - 使用值数组过滤多个属性的值

javascript - 比较两个对象,如果对象键值对的一部分存在则返回 true

javascript - 使用 lodash 简化表达式

javascript - 如何在 svg 中制作色带的垂直波浪动画?

javascript - ajax post请求后范围变量没有改变

javascript - jQuery Progress 动画到预定义的宽度 - Multiple Div

javascript - 如何使用 ajax 推送引擎发出通知?

javascript - RSpec、 capybara 、bootbox.js、Rails-3.2。 :selenium driver 的奇怪行为