2016-12-06 47 views
-1

当我试图解决我的对象,而在for循环,它是按降序排列的流动,但是当我尝试打印我的对象在控制台排序后,它再次表明按升序。排序JS对象的关键降序排列

function sortObject(object) { 
    var sortedObj = {}, 
     keys = _.keys(object); 
    var keysReverse = keys.reverse(); 

    _.each(keysReverse, function(key) { 

     sortedObj[key] = object[key]; 
     console.log(sortedObj); 
    }); 
    return sortedObj; 
} 

var obj5 = { 
    3: 'some', 
    7: 'every', 
    2: 'all' 
} 

sortObject(obj5); 

如何按键降序排列对象?

回答

0

反向阵列不会对数组进行排序。

var keysReverse = _.sortBy(keys, function(num){ return num }); 

function sortObject(obj) { 
 
    var sortedObj = {}, 
 
    keys = _.keys(obj); 
 

 
    var keysReverse = _.sortBy(keys, function(num) { 
 
    return num 
 
    }); 
 

 
    _.each(keysReverse, function(key) { 
 

 
    sortedObj[key] = obj[key]; 
 

 
    }); 
 
    return sortedObj; 
 
} 
 

 
var obj5 = { 
 
    3: 'some', 
 
    7: 'every', 
 
    2: 'all' 
 
} 
 

 
console.log(sortObject(obj5));
<script src=" 
 
https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

+0

变种keysReverse = _.sortBy(键,功能(NUM){ \t返回-num; });因为我需要降序我使用这种方法..但仍然我的对象登录升序? like { “2”:“all”, “3”:“some”, “7”:“every” } – reddy

+2

@ArthiReddyPedditti Javascript对象的属性根据定义无序排列;所以整理它们是没有意义的。 – Mahi

+0

你可以排序对象的键的数组。但不反对自己。 – Mahi