[1,3,2,4].sort
#=> [1,2,3,4]
[1,3,2,4].sort{|a,b|a<=>b}
#=> [1,2,3,4]
[1,3,2,4].sort{|a,b|b<=>a}
#=> [4,3,2,1]
#sort從第一個項目開始比,如果array且第一個項目全等於,則比對第二項目,無法比對如obj則會報錯
[[1,4],[3,2],[2,1],[4,3],[4,0]].sort
#=> [[1, 4], [2, 1], [3, 2], [4, 0], [4, 3]]
#所以此題無法排序第二組解,因此
[[1,4],[3,2],[2,1],[4,3],[4,0]].sort{|a,b|a[1]<=>b[1]}
#=>[[4, 0], [2, 1], [3, 2], [4, 3], [1, 4]]
#當然如上,你高興也可以reverse
[[1,4],[3,2],[2,1],[4,3],[4,0]].sort{|a,b|b[1]<=>a[1]}
#=>[[1, 4], [4, 3], [3, 2], [2, 1], [4, 0]]
#至於多個值,單純別人的demo
objects.sort do |a, b|
(a.lastname <=> b.lastname).nonzero? ||
(a.firstname <=> b.firstname)
end
所以這樣就算array裡面的東西是object,也可以取出值來做排序就是了
沒有留言:
張貼留言