我有一个JavaScript对象:
var objs = {'1':2, '2':3, '3':1, '4':2};
如何通过JavaScript中的数字值对属性进行排序?
我了解sort(a,b)
,但这似乎仅适用于字符串和数字。我是否需要向对象添加toString()
方法?
答案 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);