简体   繁体   English

如何插入键/值对,其中键是另一对的值? 哈希数组 Ruby

[英]How to insert key/value pair where the key is the value of another pair? Array of hashes Ruby

Here the array of hashes:这里是哈希数组:

array = [
{:ID => "aaa", :phase => "alpha", :quantity => 80},
{:ID => "aaa", :phase => "beta", :quantity => 160}
]

I'm trying to transform the value of :phase into a key and to assign its value taking the value of :quantity , as follow:我正在尝试将:phase的值转换为键,并以:quantity的值分配其值,如下所示:

array = [
{:ID => "aaa", :"alpha" => 80},
{:ID => "aaa", :"beta" => 160}
]

Thanks谢谢

I would do it like this:我会这样做:

array = [
  {:ID => "aaa", :phase => "alpha", :quantity => 80},
  {:ID => "aaa", :phase => "beta", :quantity => 160}
]

array.map { |hash| { :ID => hash[:ID], hash[:phase].to_sym => hash[:quantity] } }
#=> [{:ID=>"aaa", :alpha=>80}, {:ID=>"aaa", :beta=>160}]

You can do it like this:你可以这样做:

array.map do |hash|
  new_key = hash.delete(:phase)
  quantity = hash.delete(:quantity)
  hash[new_key] = quantity
  hash
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM