我想按照术语(键,值)对关联的对象进行排序
我能够根据key
存储值,但无法使用内置value
函数在sort()
的基础上对它们进行排序,如同关联数组一样。
var usernames = {};
username[1] = "ZNAME";
username[2] = "BNAME";
username[3] = "ANAME";
username[4] = "TNAME";
username[5] = "KNAME";
username[5] = "YNAME";
$.each(usernames,function(key, value){
alert(key + " : " + value);
})
请告诉方法使用我更新的JSFIIDLE
进行排序答案 0 :(得分:1)
var username = [];
username[0] = "ZNAME";
username[1] = "BNAME";
username[2] = "ANAME";
username[3] = "TNAME";
username[4] = "KNAME";
username[5] = "YNAME";
username.sort();
$.each(username,function(key, value){
alert(key + " : " + value);
})
答案 1 :(得分:1)
您无法对对象进行排序,您必须将其设为数组。例如:
var usernamesArray = [
{key:1,username:"ZNAME"},
{key:2,username:"BNAME"},
...
{key:5,username:"YNAME"}
];
var sortedUsernamesArray=usernamesArray.sort(function(a,b){
//
return (a.username>b.username)?1:-1;
});
现场演示:http://jsfiddle.net/GrD4v/
注意:这里不需要jQuery。
[编辑]有几种不同的方法来构建usernamesArray。一个简单的:
var usernamesObject = {};
var usernamesArray = [];
usernamesObject[1] = "ZNAME";
usernamesObject[2] = "BNAME";
usernamesObject[3] = "ANAME";
usernamesObject[4] = "TNAME";
usernamesObject[5] = "KNAME";
usernamesObject[6] = "YNAME";
for (var i=1;i<7,i++) {
usernamesArray.push({key:i,username:usernamesObject[i]});
}