簡體   English   中英

將帶有值數組的ruby哈希合並到具有值數組的另一個哈希中

[英]merging ruby hash with array of values into another hash with array of values

我似乎無法找到談論這樣做的任何地方。

假設我有一個哈希{"23"=>[0,3]}並且我想在這個哈希{"23"=>[2,3]}中合並以得到這個哈希{"23"=>[0,2,3]}

或者{"23"=>[3]}{"23"=>0}合並得到{"23"=>[0,3]}

謝謝!

{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval| 
  oldval | newval
end
#=> {"23"=>[0, 3, 2]}

處理非數組值的更通用方法:

{ "23" => [0,3] }.merge({ "23" => [2,3] }) do |key, oldval, newval|
  (newval.is_a?(Array) ? (oldval + newval) : (oldval << newval)).uniq
end

更新了Marc-AndréLafortune的提示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM