数组元素比较Ruby

时间:2015-04-08 22:02:28

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

我有一个看起来像

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

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

2 个答案:

答案 0 :(得分:4)

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"]]

答案 1 :(得分:1)

我喜欢以下内容:

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"]]