簡體   English   中英

ruby排序數組的數組

[英]ruby sort array of an array

我在弄清楚如何對數組的數組進行排序時遇到了問題。 兩個陣列都很直接,我確信這很簡單,但我似乎無法弄明白。

這是陣列:

[["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]}

取決於您是想要升序還是降序。

sort可以與塊一起使用。

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]] 

使用Array#排序方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM