ruby-on-rails - Ruby 散列按多个值分组

标签 ruby-on-rails arrays ruby hash

我有多个看起来像这样的散列:

[{"name" => "name1", "folder" => "folder1", id => 1 },

{"name" => "name1", "folder" => "folder1", id => 2 },

{"name" => "name1", "folder" => "folder2", id => 3},

{"name" => "name2", "folder" => "folder1", id => 4}]

我的目标是拥有这样的东西:

   {"name1" => 
    [{"folder1" =>
      [{"name" => "name1", "folder" => "folder1", id => 1 },
       {"name" => "name1", "folder" => "folder1", id => 2 }] }
     {"folder2" => 
       [{"name" => "name1", "folder" => "folder2", id => 3}] }]

    {"name2" => 
     [{"folder 1" => 
       [{"name" => "name2", "folder" => "folder1", id => 4}] }] }

我暂时没有找到能给出这种或类似结果的合适解决方案。

编辑:我试过那个和很多其他的,但从来没有找到拥有两层深度哈希的方法 a.group_by{|line| line["name"]}.each_value {|v| v. map {|线|行[“文件夹”]}}

最佳答案

这好像do what you want :

transformed_hash = initial_hash
  .group_by { |x| x['name'] }
  .map { |k, v| [k, v.group_by{ |x| x['folder'] }] }
  .to_h

关于ruby-on-rails - Ruby 散列按多个值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914000/

相关文章:

ruby-on-rails - 使用线程时处理 Rails 中的循环依赖

javascript - 从服务器返回许多 json 对象的 observable 会一次包含所有对象还是遍历?

ruby - proc 在 irb 中改变类

java - 在 Android Studio 中的 OnClick 类之间共享数组

ruby-on-rails - rails 上的 ruby 。在文本字段数据库中存储变量

ruby - 无法通过 RVM 安装 Ruby 2.0.0

ruby-on-rails - Heroku 域注册配置为在雪松堆栈上的 Bamboo

sql - tsvector_update_trigger 找不到 tsvector 列

ruby-on-rails - rails 中数据修复的最佳替代方案?

java - 在平方根猜测公式中得到错误的值