我有一个“二维数组”,每次包含两个值。
array = [[:tuesday, 0.25], [:monday, 1], [:thursday, 0.75]]
我希望使用“child”数组中的数字按降序对“parent”数组进行排序。结果应如下所示:
array = [[:monday, 1], [:thursday, 0.75], [:tuesday, 0.25]]
我不太确定从哪里开始。
这段内容与IT技术无关。array.sort { |a, b| b[1] <=> a[1] }
array.sort_by(&:last).reverse
array = [['Tuesday',0.25],['Monday',1],['Thursday',0.75]]
p array.sort_by{|a| -a[1]}
# => [["Monday", 1], ["Thursday", 0.75], ["Tuesday", 0.25]]
sort
方法返回一个新的已排序数组(保存为 new_array
)。new_array = array.sort{|x, y| y[1] <=> x[1]}
# => [["Monday", 1], ["Thursday", 0.75], ["Tuesday", 0.25]]
array
不变。array
# => [["Tuesday", 0.25], ["Monday", 1], ["Thursday", 0.75]]
或者你可以使用 sort!
来改变原始数组的顺序。
array.sort!{|x, y| y[1] <=> x[1]}
# => [["Monday", 1], ["Thursday", 0.75], ["Tuesday", 0.25]]
array
# => [["Monday", 1], ["Thursday", 0.75], ["Tuesday", 0.25]]