ruby - 散列成分组数组

标签 ruby arrays hash

我对ruby不是很有经验,所以我正在努力格式化一段数据。

我有这个散列,其中包含一些具有相同值的键,例如:

{"key" => "value1", "key2" => "value2", "key3" => "value3", "key4" => "value1", "key5" => "value2" ..}

我想把它变成一个包含按值分组的键的数组

 [["key","key4"],["key2","key5"],["key3"]]

最佳答案

new_hash = {}
hash.each do |key, value|
  new_hash[value] ||= []
  new_hash[value] << key
end
array = new_hash.values # => [["key", "key4"], ["key2", "key5"], ["key3"]]

关于ruby - 散列成分组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557485/

相关文章:

arrays - 覆盖 systemverilog 中结构数组参数的大小

c++ - std::array 和 boost::array 之间的差异

C++:第一个非重复字符,使用 HashMap 的 O(n) 时间

ruby-on-rails - 可以在 Rails 中为 belongs_to 关联起别名吗?

ruby-on-rails - Ruby Rest 客户端 POST,如何发送 header

javascript - 编译并传递数组——AngularJS 和 PHP

perl - 按 Perl 哈希的哈希值哈希排序

ruby-on-rails - 只保存不存在的记录

mysql - 将 Rails 3 应用程序开发环境移至另一台机器

c++ - 整体哈希