【问题标题】:How can I combine these two arrays of arrays in Ruby如何在 Ruby 中组合这两个数组数组
【发布时间】:2013-11-06 00:28:08
【问题描述】:

我有两个长度和格式相同的数组。我正在寻找最短的方法来做这样的事情:

[[:todo],[],['text']].some_operation([[],[:low],[]])
->
[[:todo],[:low],['text']]

因为我希望删除重复项:

[[:todo],[],['text']].some_operation([[:todo],[:low],['text','more']])
->
[[:todo],[:low],['text','more']]

【问题讨论】:

    标签: ruby arrays delegates combinations


    【解决方案1】:

    如果你有ab中的值,那么

    a.zip(b).map { |aa, bb| (aa + bb).uniq }
    

    如果你真的想把它放到Array 类中,你可以给它打猴子补丁(不是很推荐,尤其是对于这个特定的东西),或者改进它(新的,在旧版本中不起作用) .

    【讨论】:

      【解决方案2】:

      你也可以

      a.each_with_index.map {|aa, i| aa | b[i] }
      

      【讨论】:

        【解决方案3】:
        a.zip(b).map{|x|x.flatten.uniq}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-14
          相关资源
          最近更新 更多