我在弄清楚如何对数组的数组进行排序时遇到了问题。两个阵列都很直接,我确信它很简单,但我似乎无法弄明白。
这是数组:
[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
我想用内部数组的整数值对它进行排序,这是一个单词出现次数的值,最大的数字是第一个。
答案 0 :(得分:31)
尝试:
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]}
取决于您是想要升序还是降序。
答案 1 :(得分:2)
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]]
答案 2 :(得分:1)
使用Array#sort方法:
ary = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
ary.sort { |a, b| b[1] <=> a[1] }
答案 3 :(得分:1)
这应该做你想要的。
a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort {|x,y| y[1] <=> x[1]}