如何对javascript对象进行排序?
以下是我的物品:如何对javascript对象进行排序?,javascript,json,Javascript,Json,以下是我的物品: var user1 = new Object(); user1.username = "user1"; user1.sex="m"; user1.age=20; var user2 = new Object(); user2.username = "user1"; user2.sex="f";user2.age=30; var user3 = new Object(); user3.username = "user3"; user3.sex="f";user3.age=22
var user1 = new Object();
user1.username = "user1"; user1.sex="m"; user1.age=20;
var user2 = new Object();
user2.username = "user1"; user2.sex="f";user2.age=30;
var user3 = new Object();
user3.username = "user3"; user3.sex="f";user3.age=22;
var users = {"john":user1, "jerry": user2, "marry":user3};
<>我如何按年龄排序用户? 首先,考虑将用户存储在一个数组中,而不是对象
var users = [user1, user2, user3];
然后需要一个排序函数
//a and be will be passed in, you need to tell it which one is greater
function sortByAge(a,b) {
if (a.age > b.age) return 1;
if (a.age < b.age) return -1;
/* else */ return 0;
//how I had it previously that people commented on
//return a.age > b.age;
}
这是无数问题的重复,请使用搜索。JavaScript对象不是JSON。不知道您的实现,但
用户
应该是数组
而不是对象
。然后搜索一个算法来对对象数组进行排序。a)这里没有JSON,这不是JSON。JSON是数据的字符串表示(恰好基于JavaScript语法)。b) JavaScript对象是无序的。如果您需要特定的订单,请使用array.P.S。使用user1={}代码>而不是var user1=new Object()代码>。你也可以做var user1={username:'user1',性别:'m',年龄:20}
@CharlieWynn您确切问题的答案在链接上的公认答案中:P@Jehanzeb.Malik ¯_(ツ)_/''甚至没有意识到这是某种联系:P@Bergi我甚至无法解释我这样做了多久-谢谢你的链接!@CharlieWynn:因为age
是一个int,你实际上可以返回a.age-b.age;
insidesortByAge()
。比较函数只需返回任何正数、负数或零。
users.sort(sortByAge);