根据 JS 中的值对对象进行排序
sort an object based on value in js
我想对一个在术语(键、值)上具有关联的对象进行排序我能够根据key
存储值,但无法像关联数组那样使用内置sort()
函数在value
的基础上对它们进行排序。
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 排序的方法
演示
你不能对一个对象进行排序,你必须把它变成一个数组。例如:
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。
[编辑] 有几种不同的方法来构建用户名数组。一个简单的:
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]});
}
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);
})
相关文章:
- 如何在节点中进行 Json 对象排序.js
- jQuery.每个对象排序
- Javascript对象排序
- Javascript 对象排序
- Javascript中的JSON对象排序
- jQuery停止对象排序
- 带有下划线排序的对象排序的数组
- JS对象排序日期排序
- JSON对象排序被jQuery或Javascript篡改
- 高级对象排序
- 将json对象排序到嵌套树中
- 按两个不同的条件对数组中的对象排序
- 如何在angular js中使用自定义排序顺序对对象排序
- 在AngularJS的ng-repeat中,使用Underscore/Lodash按值将对象排序为一对数组
- 给定一个对象数组,如何根据深度为n的属性对对象排序
- JavaScript数组对象排序没有按预期工作
- 对数组内的对象排序
- 自定义javascript对象排序和维护索引关联
- Javascript对象排序不工作
- Javascript对象的对象排序