2015-09-02 63 views
-2

这里是我的对象:如何排序javascript对象?

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}; 

我怎么能按年龄排序,用户?

+3

这是无数问题的重复,使用搜索。 – Nit

+0

使用任何可用的排序算法...但请注意,对象没有排序。 – taesu

+1

JavaScript对象不是JSON。 – Quentin

回答

2

首先,考虑存储用户在一个阵列,而不是一个对象

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; 
} 

那么你可以使用那种你需要的地方

users.sort(sortByAge); 
+2

[这个比较函数是不够的](http://stackoverflow.com/q/24080785/1048572) – Bergi

+0

@Bergi为什么不呢?..为我工作 –

+0

请仔细阅读链接问答中的解释。尝试使用反例生成器... – Bergi