我知道这个问题已经回答了很多,但我似乎无法找到我需要的确切答案。jQuery排序对象数组
我有一个数据的对象,看起来像:
{Tom: Array, Ant: Array, Ben: Array}
我想这个排序,使它看起来像:
{Ant: Array, Ben: Array, Tom: Array}
是否有一个方便的jQuery的方法来做到这一点?
谢谢。
我知道这个问题已经回答了很多,但我似乎无法找到我需要的确切答案。jQuery排序对象数组
我有一个数据的对象,看起来像:
{Tom: Array, Ant: Array, Ben: Array}
我想这个排序,使它看起来像:
{Ant: Array, Ben: Array, Tom: Array}
是否有一个方便的jQuery的方法来做到这一点?
谢谢。
你可以不用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: [] }
这里是一个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);
Downvoter:OP想要做的是一个有效的需求以编程方式。如果有解决方案能够有效实现这一目标,我相信它对每个人都有用,而不是无声的倒退。 –
Javascript对象的属性不能被排序,除非你想创建一个包含排序中该对象属性的数组/列表d期限。
如果它是您的语言和“{}”所暗示的对象,那么这些键没有顺序并且无法排序。用一个真实的代码示例来阐述你想要解决的问题。 –