使用JS对对象进行排序

时间:2016-01-21 20:57:12

标签: javascript json object

我有一个像这样的对象 { alexa:1, 约翰:5, 比尔:2 }

我需要按值从大到小排序,但我看不出怎么做。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您仍然可以获取正在排序的键数组 - 然后只需循环键数组以正确的顺序访问您的对象:

var obj = { alexa: 1, John: 5, Bill: 2 };
var sortedKeys = Object.keys(obj).sort(function(a, b) { 
    return obj[a] - obj[b] 
});

sortedKeys.forEach(function(k) {
    console.log(obj[k]);
});

从对象创建数组:

var sortedArray = Object.keys(obj).sort(function(a, b) { 
    return obj[a] - obj[b] 
}).map(function(k) {
    var o = {};
    o[k] = obj[k];

    return o;
});

答案 1 :(得分:0)

var objUnordered = { alexa: 1, John: 5, Bill: 2 };
var objOrdered = {};
var sortable = [];

for (var element in objUnordered){
  sortable.push([element, objUnordered[element]]);
}
sortable.sort(function(a, b) {return a[1] - b[1]})
for(var key in sortable){
  objOrdered[sortable[key][0]] = sortable[key][1];
}

console.log(objOrdered);  //print this ->  Object { alexa=1,  Bill=2,  John=5}