【问题标题】:Array of arrays element comparison Ruby数组元素比较 Ruby
【发布时间】:2015-04-08 22:02:28
【问题描述】:

我有一个看起来像

的数组
[[1, 2, "2 mins"], [2, 3, "4 mins"], [3, 2, "2 mins"]]

如何过滤子数组,以便在位置 2 处获得最小值,或者在相等的情况下获得相等元素的数组?

【问题讨论】:

    标签: ruby arrays ruby-on-rails-3 filter


    【解决方案1】:
    ar = [[1, 2, "2 mins"], [2, 3, "4 mins"], [3, 2, "2 mins"]]
    p ar.group_by{|sub_ar| sub_ar[1]}.min.last
    # => [[1, 2, "2 mins"], [3, 2, "2 mins"]]
    

    【讨论】:

    • 谢谢,这正是我想要的
    【解决方案2】:

    我喜欢以下内容:

    a = [[1, 2, "2 mins"], [2, 3, "4 mins"], [3, 2, "2 mins"]]
    
    min_val = a.min_by { |e| e[1] }[1]
      #=> 2
    a.select { |e| e[1] == min_val }
      #=> [[1, 2, "2 mins"], [3, 2, "2 mins"]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多