ruby - 如何基于 ruby​​ 中的相同键合并散列数组?

标签 ruby arrays hash

如何在 ruby​​ 中合并基于相同键的散列数组?

例子:

a = [{:a=>1},{:a=>10},{:b=>8},{:c=>7},{:c=>2}]

如何得到这样的结果?

a = [{:a=>[1, 10]},{:b=>8},{:c=>[7, 2]}]

最佳答案

尝试

a.flat_map(&:entries)
  .group_by(&:first)
  .map{|k,v| Hash[k, v.map(&:last)]}

关于ruby - 如何基于 ruby​​ 中的相同键合并散列数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22318495/

相关文章:

ruby-on-rails - Ruby:合并数组或散列

c - 将 char 数组传递给 (void const *p)

arrays - Swift Array.map 关闭问题

c++ - 散列浮点值

java - 自动将 Java 正则表达式转换为 Ruby 正则表达式?

ruby - 安装 RVM 时出错

javascript - 单击事件时删除 url 中的哈希更改

arrays - 合并和组合数组中的哈希值

ruby-on-rails - Ruby rails - 从数据库中只选择几列

java - 如何从字符串中分别获取表名、列名和列值