我在 ruby 中有一个数组哈希:
@people = { "a" => ["john", "mark", "tony"], "b"=> ["tom","tim"],
"c" =>["jane"], "others"=>["rob", "ryan"] }
我想合并特定键值的数组中少于 3 个项目的所有键值对。它们应该被合并到名为“others”的键中,以大致给出以下结果
@people = { "a" => ["john", "mark", "tony"],
"others"=> ["rob", "ryan", "tom", "tim", "jane"] }
使用以下代码是有问题的,因为哈希中不能存在重复的键值:
@people = Hash[@people.map{|k,v| v.count<3 ? ["others",v] : [k,v]} ] %>
优雅地解决这个问题的最佳方法是什么?