我有一个看起来像
的数组[[1, 2, "2 mins"], [2, 3, "4 mins"], [3, 2, "2 mins"]]
如何过滤子阵列以便在第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"]]