我有一个当前哈希:
{
"2018-03-12"=>[{:date=>"2018-03-12", :net_revenue=>0.044}],
"2018-03-11"=>[{:date=>"2018-03-11", :net_revenue=>0.033}],
"2018-03-10"=>[{:date=>"2018-03-10", :net_revenue=>298.860}]
}
如何让它看起来像这样?
{
"2018-03-12"=>{:date=>"2018-03-12", :net_revenue=>0.044},
"2018-03-11"=>{:date=>"2018-03-11", :net_revenue=>206.008},
"2018-03-10"=>{:date=>"2018-03-10", :net_revenue=>298.860}
}
答案 0 :(得分:4)
就像
一样简单hash.transform_values(&:first)
(红宝石2.4及以后)
答案 1 :(得分:1)
hash = {
"2018-03-12"=>[{:date=>"2018-03-12", :net_revenue=>0.044}],
"2018-03-11"=>[{:date=>"2018-03-11", :net_revenue=>0.033}],
"2018-03-10"=>[{:date=>"2018-03-10", :net_revenue=>298.860}]
}
new_hash = hash.each { |k, v| hash[k] = v[0] }
new_hash 将如下所示:
new_hash = {
"2018-03-12"=>{:date=>"2018-03-12", :net_revenue=>0.044},
"2018-03-11"=>{:date=>"2018-03-11", :net_revenue=>0.033},
"2018-03-10"=>{:date=>"2018-03-10", :net_revenue=>298.860}
}
答案 2 :(得分:0)
除了确保数据以您希望的方式出现之外,
hash.each do |key, val|
hash[key] = val.first
end