在辅助元素上排序多维数组,其中主要元素为nil

时间:2012-11-14 18:02:13

标签: ruby

我有一个多维数组,其中主数组中的每个数组元素都有两个子元素,第二个子元素有时可能是nil。我想在第二个子元素上对主数组进行排序,除非第二个子元素为nil,在这种情况下,我希望排序查看第一个子元素以便计算顺序。

所以,这个数据

[[7, nil], [5, 4], [3,9]]

会像这样排序

[[5, 4], [7, nil], [3,9]]

有办法做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

1.8.7 > [[7, nil], [5, 4], [3,9]].sort_by{|a| a.last.nil? ? a.first : a.last}
 => [[5, 4], [7, nil], [3, 9]]