【发布时间】:2011-11-19 14:33:38
【问题描述】:
我有哈希数组
[{:id=>2, :price_psm=>450, :rooms_count=>3, :sq=>50, :tax_inc=>"t", :title=>"title1"},
{:id=>2, :price_psm=>499, :rooms_count=>3, :sq=>40, :tax_inc=>"t", :title=>"title1"},
{:id=>2, :price_psm=>499, :rooms_count=>3, :sq=>41, :tax_inc=>"t", :title=>"title1"},
{:id=>1, :price_psm=>450, :rooms_count=>2, :sq=>20, :tax_inc=>"t", :title=>"title2"}]
我如何合并相同的哈希并创建如下内容:
[{:id=>2, :price_psm=>[450,499,499], :rooms_count=>3, :sq=>[50,40,41], :tax_inc=>"t", :title=>"title1"},
{:id=>1, :price_psm=>450, :rooms_count=>2, :sq=>20, :tax_inc=>"t", :title=>"title2"}]
【问题讨论】:
-
究竟是什么让它们相似?
-
从外观上看,每个散列都是相同的键,并且某些散列对于
id键具有相同的值,因此他想通过合并具有相等id键的散列来展平数组. -
@Vadim:请不要使用“相似”这个词。你的意思是一样的吗?
-
两个问题:1)为什么price_psm有两个499? 2)为什么 sq => [20] 而不是 sq => 20 在第二个数组中?
-
1) :price_psm 和 :sq 中的数组不应该是 uniq 2) 不需要数组,已编辑(抱歉混淆)