如何按值

时间:2017-05-04 02:55:43

标签: javascript

假设您在JS中有以下对象:

let obj = {a: 24, b: 12, c:21; d:15};

如何' obj'被转换为对象的键的数组,按值?

排序

3 个答案:

答案 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()比较器函数仅适用于数值(交换ab以相反方向排序),但由于这就是问题,我认为它很好..

答案 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)