现在,我正在合并这样的两个哈希:
department_hash = self.parse_department html
super_saver_hash = self.parse_super_saver html
final_hash = department_hash.merge(super_saver_hash)
Run Code Online (Sandbox Code Playgroud)
输出:
{:department => {"Pet Supplies"=> {"Birds"=> 16281,"Cats"=> 245512,"Dogs"=> 513926,"Fish&Aquatic Pets"=> 46811,"Horses"=> 14805 ,"昆虫"=> 364,"爬行动物和两栖动物"=> 5816,"小动物"=> 19769}},:super_saver => {"免费超级救星航运"=> 126649}}
但现在我想在未来合并更多.例如:
department_hash = self.parse_department html
super_saver_hash = self.parse_super_saver html
categories_hash = self.parse_categories html
Run Code Online (Sandbox Code Playgroud)
如何合并多个哈希?
pgu*_*rio 25
怎么样:
[department_hash, super_saver_hash, categories_hash].reduce &:merge
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 16
你可以再打电话merge:
h1 = {foo: :bar}
h2 = {baz: :qux}
h3 = {quux: :garply}
h1.merge(h2).merge(h3)
#=> {:foo=>:bar, :baz=>:qux, :quux=>:garply}
Run Code Online (Sandbox Code Playgroud)
你可以使用以下方式Enumerable#inject:
h = {}
arr = [{:a=>"b"},{"c" => 2},{:a=>4,"c"=>"Hi"}]
arr.inject(h,:update)
# => {:a=>4, "c"=>"Hi"}
arr.inject(:update)
# => {:a=>4, "c"=>"Hi"}
Run Code Online (Sandbox Code Playgroud)