0

私はこのような配列を持っています

arr = [[24,4], [44,5],[67,1], [30, 2], [67, 2]]

私が使用している場合、私はarr.sort{|a,b| b[0]<=>a[0]}この結果を得る

[[67,1], [67, 2], [44,5], [30, 2], [24,4]] -  #[value, id]

この結果を達成するために配列を再度ソートする方法

[[67,2], [67, 1], [44,5], [30, 2], [24,4]] -  #[value, id]

同じ値がある場合、ソートはidの降順で発生するはずです。

ありがとう

4

2 に答える 2

4

シンプルで明確なルートをとってみませんか。

arr.sort.reverse
# => [[67, 2], [67, 1], [44, 5], [30, 2], [24, 4]]
于 2012-06-09T15:34:37.057 に答える
3

使用することをお勧めしますEnumerable#sort_by

arr = [[24,4], [44,5],[67,1], [30, 2], [67, 2]]
arr.sort_by { |x, y| [-x, -y] }
#=> [[67, 2], [67, 1], [44, 5], [30, 2], [24, 4]]
于 2012-06-09T12:29:49.577 に答える