【问题标题】:Sorting object properties by property value按属性值对对象属性进行排序
【发布时间】:2020-06-18 11:33:07
【问题描述】:

我有一个 JavaScript 对象:

var objs = {'1':2, '2':3, '3':1, '4':2};

如何在 JavaScript 中按数字的值对属性进行排序?

我知道sort(a,b),但这似乎只适用于字符串和数字。我需要向我的对象添加toString() 方法吗?

【问题讨论】:

  • objs 是数组还是对象?
  • 请添加数组。
  • 对不起,我的意思是 objs 是对象
  • AFAIK 您无法对对象属性进行排序。
  • @evolutionxbox,您可以使用新对象,但不能使用类似值的索引。

标签: javascript arrays sorting object


【解决方案1】:

对象并不(总是)遵循插入顺序。所以不能保证你总是得到相同的输出。对于排序,您可以使用 arrayMap 来保持顺序。更多信息请查看stackoverflow discussion

根据提问:var objs = {'1':2, '2':3, '3':1, '4':2}; JavaScript 中如何按数字的值对它们进行排序?你可以这样做

var objs = {
  '1': 2,
  '2': 3,
  '3': 1,
  '4': 2
};
var map = new Map(Object.entries(objs));
var sorted = new Map(Array.from(map).sort((a, b) => a[1] - b[1]));
console.log(sorted);

【讨论】:

    猜你喜欢
    • 2016-02-08
    • 2013-02-12
    • 2023-04-03
    • 2021-07-20
    • 2010-11-02
    相关资源
    最近更新 更多