微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将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的提示.

原文地址:https://www.jb51.cc/ruby/271005.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐