假设有一个数组:a = [[1,2,3],[4,5]]
还有另一个数组:b = [[2.5,1.5,3.5],[1.5,2.5]]
我需要根据'b'对'a'进行排序。 即输出应为= [[3,1,2],[5,4]]
我尝试过编写代码,但我的代码似乎很冗长。如果您能帮助我,将不胜感激。谢谢!
我需要根据'b'对'a'进行排序。 即输出应为= [[3,1,2],[5,4]]
我尝试过编写代码,但我的代码似乎很冗长。如果您能帮助我,将不胜感激。谢谢!
class Array
def sort_by_other_array(arr)
zip(arr).sort_by {|x,y| y}.map {|x,y| x}
end
end
a=[[1,2,3],[4,5]]
b=[[2.5,1.5,3.5],[1.5,2.5]]
a.zip(b).map {|x,y| x.sort_by_other_array(y).reverse}
#=> [[3, 1, 2], [5, 4]]
a.zip(b).map do |values, sort_values|
sort_values.zip(values).sort.reverse_each.map{|sort, value| value}
end