ruby - 对二维数组进行排序以获得不同的结果,而不会在 ruby​​ 中重复

标签 ruby arrays distinct sorting

我有一个二维数组:

arr = [
  ["John", 17],
  ["John", 17],
  ["Abe", 14],
  ["Kobian", 18],
  ["Hony", 16],
  ["Mony", 19],
  ["John", 18],
  ["Hari", 15],
]

我希望看到独特的结果并按字母顺序排序,以便不会重复相同的名称。 如果名字不同但年龄相同,则选择一个不重复且年龄较小的。

我做了很多工作,但没有找到解决方法...在此先感谢您的回答...

最佳答案

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]]

关于ruby - 对二维数组进行排序以获得不同的结果,而不会在 ruby​​ 中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626603/

相关文章:

c - 函数在 Release模式下崩溃,但在调试器中运行完美

c# - 使用字符串和整数 C# 的按钮数组

php - 从表中选择随机数量的记录,其中列值对于mysql中的结果集不重复

Django ModelChoiceField 使用来自一个模型属性的不同值

ruby-on-rails - 我如何处理两个具有不同 Ruby/Rails 版本的应用程序?

ruby - 数组中最长的项目

ruby-on-rails - gem 不可用,即使在添加到 gemfile 并运行 bundle install 之后也是如此

ruby-on-rails - 为什么 Rails 可以使用 `if` 作为哈希键但在 Ruby 中不能

PHP PostgreSQL 数组到字符串

sql - 我什么时候应该在查询中使用distinct?