说我有:a = ["apple", "pear", ["grapes", "berries"], "peach"]
我想按以下分类:
a.sort_by do |f|
f.class == Array ? f.to_s : f
end
我得到:
[["grapes", "berries"], "apple", "peach", "pear"]
实际上,我希望项目按字母顺序排列,数组项目按其第一个元素排序:
["apple", ["grapes", "berries"], "peach", "pear"]
或者,最好,我想:
["apple", "grapes, berries", "peach", "pear"]
如果这个例子不够清楚,我希望按字母顺序对项目进行排序。
有什么到那里的建议吗?
到目前为止,我试过几件事,但似乎还没有达到目的。谢谢。
最佳答案
我想这就是你想要的:
a.sort_by { |f| f.class == Array ? f.first : f }