我有一个二维数组:
arr = [
["John", 17],
["John", 17],
["Abe", 14],
["Kobian", 18],
["Hony", 16],
["Mony", 19],
["John", 18],
["Hari", 15],
]
我希望看到独特的结果并按字母顺序排序,以便不重复相同的名称。 如果姓名不同且年龄相同,则选择一个不重复且年龄较小的人。
我工作了很多,但没有找到解决方法......提前感谢答案......
答案 0 :(得分:4)
arr.group_by {|e| e[0] }.map {|k,v| v.min}.sort
=> [["Abe", 14], ["Hari", 15], ["Hony", 16], ["John", 17], ["Kobian", 18], ["Mony", 19]]
并保持不同的年龄:
require 'set'
Set.new(arr).sort
=> [["Abe", 14], ["Hari", 15], ["Hony", 16], ["John", 17], ["John", 18], ["Kobian", 18], ["Mony", 19]]