繁体   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