按属性值对对象属性进行排序

时间:2020-06-18 11:33:07

标签: javascript arrays sorting object

我有一个JavaScript对象:

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

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

我了解sort(a,b),但这似乎仅适用于字符串和数字。我是否需要向对象添加toString()方法?

1 个答案:

答案 0 :(得分:1)

一个对象不(总是)遵循插入顺序。因此,不能保证您始终获得相同的输出。为了进行排序,您可以使用数组地图来维持顺序。有关更多信息,请参见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);