2012-04-20 68 views
0

嗨點對象數組我想在javascript排序點對象的數組,這樣的陣列,排序在Javascript

[{x: 220, y: 1080}, {x: 1, y: 0}, {x: 0, y: 1080}]

達到預先

[{x: 0, y: 1080}, {x: 1, y: 0}, {x: 220, y: 1080}]

謝謝

+0

'points.sort(function(a,b){return a.x-b.x || a.y-b.y})' – georg 2012-04-20 13:54:54

回答

1
var sorted = unsorted.sort(function(a,b) { return a.x - b.x }) 
+1

以及如果x座標相同,排序順序是什麼? – Alnitak 2012-04-20 13:45:17

+0

@Alnitak。雖然你是對的,但在問題中沒有提出要求。 +1 – gdoron 2012-04-20 13:46:52

+0

@Alnitak:是的,這是真的,我的答案並沒有解決這個問題。 – 2012-04-20 13:48:17

4
arr.sort(function(a,b) { 
    if(a.x == b.x) return a.y-b.y; 
    return a.x-b.x; 
}); 

這是基本功能sort ...

+3

請使用'==='而不是'=='。 – 2012-04-20 13:46:53

+1

爲什麼?它在這裏有什麼不同? – 2012-04-20 13:47:59

+0

只傳播更好的(如果不是很好的話)習慣。 – 2012-04-20 13:49:10