【发布时间】:2015-07-25 10:24:39
【问题描述】:
我在 Ruby 中有以下数组。
arr = [
[13.0, ["mango", "banana", "jackfruit"]],
[10.0, ["mango", "Milk", "Cofee"]],
[4.0, ["mango"]]
[5.0, ["jackfruit"]],
[6.0, ["mango", "banana"]],
[5.0, ["mango", "banana"]],
[10.0, ["banana", "jackfruit"]],
[5.0, ["banana"]],
]
我希望结果按以下规则排序:
- 首先按 Fruit 数组长度排序(如何分组)
- 按价格从低到高排序。
预期输出:
[
[10.0, ["mango", "Milk", "Cofee"]],
[13.0, ["mango", "banana", "jackfruit"]],
[5.0, ["mango", "banana"]],
[6.0, ["mango", "banana"]],
[10.0, ["banana", "jackfruit"]],
[4.0, ["mango"]]
[5.0, ["jackfruit"]],
[5.0, ["banana"]],
]
说明:首先按水果数组长度对元素进行分类,然后在每个集合上根据它们的价格(低-高)进行排序。
我尝试了以下代码,但没有给出想要的结果!
arr.group_by{|x| x[1].length }.sort_by{|x| x[0]}.map{|x| x[1]}
【问题讨论】:
标签: ruby sorting enumerable