如何在Ruby中组合这两个数组
我有两个长度和格式相同的数组。我正在寻找最短的方法来执行以下操作:如何在Ruby中组合这两个数组,ruby,arrays,delegates,combinations,Ruby,Arrays,Delegates,Combinations,我有两个长度和格式相同的数组。我正在寻找最短的方法来执行以下操作: [[:todo],[],['text']].some_operation([[],[:low],[]]) -> [[:todo],[:low],['text']] 由于我希望删除重复项: [[:todo],[],['text']].some_operation([[:todo],[:low],['text','more']]) -> [[:todo],[:low],['text','more']] 如果在a和b中
[[:todo],[],['text']].some_operation([[],[:low],[]])
->
[[:todo],[:low],['text']]
由于我希望删除重复项:
[[:todo],[],['text']].some_operation([[:todo],[:low],['text','more']])
->
[[:todo],[:low],['text','more']]
如果在
a
和b
中有值,则
a.zip(b).map { |aa, bb| (aa + bb).uniq }
如果你真的想把它放到数组类中,你可以对它进行monkey补丁(不推荐,特别是对于这种特定的东西),或者对它进行优化(新的,在旧版本中不起作用)。你也可以这样做
a.each_with_index.map {|aa, i| aa | b[i] }
a.zip(b).map{|x|x.flatten.uniq}