假设您在JS中有以下对象:
let obj = {a: 24, b: 12, c:21; d:15};
如何' obj'被转换为对象的键的数组,按值?
排序答案 0 :(得分:9)
let obj = {a: 24, b: 12, c:21, d:15};
// Get an array of the keys:
let keys = Object.keys(obj);
// Then sort by using the keys to lookup the values in the original object:
keys.sort(function(a, b) { return obj[a] - obj[b] });
console.log(keys);
请注意,如果需要Object.keys(obj).sort(...)
,可以在一行中完成上述操作。显示的简单.sort()
比较器函数仅适用于数值(交换a
和b
以相反方向排序),但由于这就是问题,我认为它很好..
答案 1 :(得分:2)
这里是对对象进行排序并获得返回的排序对象的方法
let sortedObject = {}
sortedObject = Object.keys(yourObject).sort((a, b) => {
return yourObject[a] - yourObject[b]
}).reduce((prev, curr, i) => {
prev[i] = yourObject[curr]
return prev
}, {});
您可以根据自己的要求自定义排序功能
答案 2 :(得分:1)
var obj = {
a: 24, b: 12, c:21, d:15
};
var sortable = [];
for (var x in obj ) {
sortable.push([x, obj[x]]);
}
sortable.sort(function(a, b) {
return a[1] - b[1];
});
console.log(sortable)