我有一个多维数组,其中主数组中的每个数组元素都有两个子元素,第二个子元素有时可能是nil。我想在第二个子元素上对主数组进行排序,除非第二个子元素为nil,在这种情况下,我希望排序查看第一个子元素以便计算顺序。
所以,这个数据
[[7, nil], [5, 4], [3,9]]
会像这样排序
[[5, 4], [7, nil], [3,9]]
有办法做到这一点吗?
谢谢!
答案 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]]