Ruby 快速从散列的散列中创建一个数组?

标签 ruby arrays ruby-1.9.3 hash-of-hashes

好吧,如果我有一个散列的散列来表示这样的书:

Books = 
{"Harry Potter" => {"Genre" => Fantasy, "Author" => "Rowling"},
 "Lord of the Rings" => {"Genre" => Fantasy, "Author" => "Tolkien"}
 ...
}

有什么方法可以简洁地获得书籍散列中所有作者的数组? (如果为多本书列出了同一作者,我需要他们的名字在每本书的数组中一次,所以不必担心清除重复项)例如,我希望能够按以下方式使用它:

list_authors(insert_expression_that_returns_array_of_authors_here)

谁知道这种表情怎么写?非常感谢您收到的任何帮助。

最佳答案

获取哈希值,然后使用 Enumerable#map 从该值(哈希数组)中提取作者:

books = {
  "Harry Potter" => {"Genre" => "Fantasy", "Author" => "Rowling"},
  "Lord of the Rings" => {"Genre" => "Fantasy", "Author" => "Tolkien"}
}
authors = books.values.map { |h| h["Author"] }
# => ["Rowling", "Tolkien"]

关于Ruby 快速从散列的散列中创建一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178446/

相关文章:

ruby - 瓦蒂尔。滚动到页面的某个点

windows - 如何使用 ruby​​ 1.9.3 在 Windows XP 中安装 rmagick

ruby - 如何在 sass 上启用调试,以便我可以使用 firesass?

ruby - 是否可以在 gem 中包含 Bash 脚本?

c - 如何在 C 中用整数打印和填充 void * 数组

javascript 将数组的元素转换为数组

ruby-on-rails - 我怎样才能找到 Heroku 上的内存泄漏?

ruby-on-rails - Rails 3. has_many 作为另一个类

ruby-on-rails - 将Rails 5.2升级到6.0.0后的内存泄漏

c++ - 添加不同类型的数组 (c++)