我有一個問題搞清楚我如何排序數組的數組。兩個陣列都很簡單,我確信它非常簡單,但我似乎無法弄清楚。ruby排序陣列
這裏的數組:
[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
我想通過內部數組這是多少次這個詞第一次發生,最大數的值的整數值排序。
我有一個問題搞清楚我如何排序數組的數組。兩個陣列都很簡單,我確信它非常簡單,但我似乎無法弄清楚。ruby排序陣列
這裏的數組:
[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
我想通過內部數組這是多少次這個詞第一次發生,最大數的值的整數值排序。
嘗試之一:
array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| a[1] <=> b[1]}
或者:
array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| b[1] <=> a[1]}
視您想要的上升或下降。
使用陣列#排序方法:
ary = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
ary.sort { |a, b| b[1] <=> a[1] }
這應該做你想要什麼。
a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort {|x,y| y[1] <=> x[1]}
排序可以與塊一起使用。
a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort { |o1, o2| o1[1] <=> o2[1] }
#=> [["happy", 1], ["mad", 1], ["sad", 2], ["bad", 3], ["glad", 12]]
您應該*總是*使用'sort_by'進行鍵控排序。它不僅更容易閱讀,而且更高效。在這種情況下,它將是'a.sort_by {| el | el [1]}',在這種情況下,它與'a.sort_by(&:last)'相同。 – 2012-03-08 12:52:27
我們如何使用這個a.sort_by {| el | el [1]}如果我們想下令降序? – 2015-06-10 15:30:35
@ Vini.g.fer a.sort_by {| el | el [1] * -1}如果el [1]是數字 – Abel 2018-01-31 18:04:33