将ruby哈希与数组的值合并到具有值数组的另一个哈希中

前端之家收集整理的这篇文章主要介绍了将ruby哈希与数组的值合并到具有值数组的另一个哈希中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我似乎找不到任何谈论这样做的地方.

说我有一个哈希{“23”=> [0,3]},我想在这个哈希{“23”=> [2,3]}中合并,以产生这个哈希{“23”=> ; [0,2,3]}

或者{“23”=> [3]}与{“23”=> 0}合并以获得{“23”=> [0,3]}

谢谢!

解决方法

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

更通用的方法来处理非数组值:

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

更新了一个Marc-AndréLafortune的提示.

猜你在找的Ruby相关文章