ruby-on-rails - 在 Rails 中,将散列压缩为嵌套散列的最佳方法是什么

标签 ruby-on-rails ruby hash

假设我有这个:

[
  { :user_id => 1, :search_id => a},
  { :user_id => 1, :search_id => b},
  { :user_id => 2, :search_id => c},
  { :user_id => 2, :search_id => d}
]

我想结束:

[
  { :user_id => 1, :search_id => [a,b]},
  { :user_id => 2, :search_id => [c,d]}
]

最好的方法是什么?

最佳答案

确实是非常奇怪的要求。无论如何

[ { :user_id => 1, :search_id => "a"},
  { :user_id => 1, :search_id => "b"},
  { :user_id => 2, :search_id => "c"},
  { :user_id => 2, :search_id => "d"} ] \
    .map{ |h| h.values_at(:user_id, :search_id) } \
    .group_by(&:first) \
    .map{ |k, v| { :user_id => k, :search_id => v.map(&:last) } }

关于ruby-on-rails - 在 Rails 中,将散列压缩为嵌套散列的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404362/

相关文章:

c# - 我应该如何覆盖 HashSet 的 Equals 和 GetHashCode?

css - 如何防止由于分页而在 pdf 报告末尾添加空白页

ruby-on-rails - RubyOnRails : How do I use helper methods in Rails Console?

ruby-on-rails - 使用 mina 部署子目录

ruby - 当存在字符 r 时,读取文件会导致问题

ruby-on-rails - 无法捆绑安装 'open-uri'

javascript - JavaScript 中的 ":"运算符

ruby DSL : Can you pass a block to an object

c# - JavaScript 中的 SHA256 哈希密码验证

ruby:使用散列作为另一个散列的默认值?