2015-09-02 62 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