【发布时间】:2016-10-07 05:21:39
【问题描述】:
我有两个哈希数组,想从中做一个
first =
[{:frontman=>"aaa", :category=>"bbb", :subcategory=>nil, :detail=>nil},other hashes]
second =
[{:__content__=>"aaa", :id=>"9096290", :frontman=>"aaa"},other hashes]
我想拥有
一个大的哈希数组
[{:__content__=>"aaa", :id=>"9096290", :frontman=>"aaa", :category=>"bbb", :subcategory=>nil, :detail=>nil},other hashes]
我试过了
(first+second).group_by{|h| h[:frontman]}.map{|k,v| v.reduce(:merge)}
但它对我不起作用
【问题讨论】:
-
我认为这是一种冒险的方法,因为哈希键是唯一的,在您的情况下,第一个和第二个数组都包含一个带有键
:frontman的哈希。 -
@NabeelAmjad 我可以删除
:frontman我只为group_by子句添加了它 -
这似乎是一个纯 Ruby 问题。如果是这样,请删除 Rails 标签。拥有 Rails 标签会浪费只对 Rails 问题感兴趣的读者的时间,并可能导致只对纯 Ruby 问题感兴趣的读者跳过问题。
-
@CarySwoveland Rails 似乎对核心类有一些扩展,例如对Hash 的扩展,如果是 Ruby 问题但使用 Rails 应用程序,可以在提出解决方案时使用这些方法