jQuery排序对象数组

时间:2015-10-05 21:57:35

标签: jquery sorting

我知道这个问题已经得到了很多回答,但我似乎无法找到一个明确的答案。

我有一个数据看起来如下的对象:

{Tom: Array, Ant: Array, Ben: Array}

我希望将其排序,使其看起来像:

{Ant: Array, Ben: Array, Tom: Array}

有没有方便的jQuery方法来执行此操作?

感谢。

3 个答案:

答案 0 :(得分:1)

除非您要在排序的术语中创建包含该对象属性的数组/列表,否则无法对Javascript对象的属性进行排序。

答案 1 :(得分:0)

你可以在没有jquery的情况下完成:

var unorderedObj = { Tom: [], Ant: [], Ben: [] };

var keys = Object.keys(unorderedObj);

var sortedKeys = keys.sort(); // [ 'Ant', 'Ben', 'Tom' ]

var sortedObj = {};    

sortedKeys.forEach(function(k) { 
  sortedObj[k] = unorderedObj[k] 
})

console.log(sortedObj); // { Ant: [], Ben: [], Tom: [] }

答案 2 :(得分:-1)

这是一个javascript / jQuery函数,用于按键对对象进行排序:

function sortObj(o){// where o is the raw object
    var keys = Object.keys(o);
    var sorted = keys.sort();

     var obj = {}; 
    $.each(sorted, function(i, key) { 
       obj[key] = o[key];  
    }); 
    return obj;
}

用作:

var rawobj = {Tom: [], Ant: [], Ben: []};
var sortedobj = sortObj(rawobj);