我有一个散列数组,其中包含特定重复键值的散列。具有多个键/值的合并散列
combined_keywords = new_array_of_hashes.each_with_object(Hash.new(0)){|oh, newh|
newh[oh[:keyword]] += oh[:total_value].to_f
}
这将创建哈希看起来像这样的数组:
{ :ACTUAL_KEYWORD => ACTUAL_TOTAL_VALUE }
我是新来的Ruby和我不太了解这背后的魔力。我有一个额外的关键和价值巩固,现在我迷路了。这个问题的根源是我不明白的整合是如何在这条线上发生:newh[oh[:keyword]] += oh[:total_value].to_f
我想这没有运气:
combined_keywords = new_array_of_hashes.each_with_object(Hash.new(0)){|oh, newh|
newh[oh[:keyword]] += oh[:total_value].to_f
newh[oh[:keyword]] += oh[:revenue_per_transaction].to_f
}
我真的只需要consildated散列每个相似的阵列于:
{ :keyword => "ACTUAL_KEYWORD", :total_value => ACTUAL_TOTAL_VALUE, :revenue_per_transaction => ACTUAL_REVENUE }
编辑:
输入
new_array_of_hashes = [
{ keyword: 'foo', total_value: 1, revenue_per_transaction: 5 },
{ keyword: 'bar', total_value: 2, revenue_per_transaction: 4 },
{ keyword: 'bar', total_value: 4, revenue_per_transaction: 4 },
{ keyword: 'foo', total_value: 3, revenue_per_transaction: 5 },
]
所需的输出
combined_keywords = [
{ keyword: 'foo', total_value: 4, revenue_per_transaction: 10 },
{ keyword: 'bar', total_value: 6, revenue_per_transaction: 8 },
]
你能给的4所预计投入的样本和你想要的输出是什么样的循环? – 2013-05-10 01:10:31
我在我的期望的输出中添加了 – mnort9 2013-05-10 20:43:18