加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中,如何用另一个多维数组对一个多维数组进行排序?

发布时间:2020-12-17 02:26:47 所属栏目:百科 来源:网络整理
导读:假设我有一个数组:a = [[1,2,3],[4,5]] 我有另一个数组:b = [[2.5,1.5,3.5],[1.5,2.5]] 我需要对’b’排序’a’. 即输出应为= [[3,1,2],[5,4]] 我试过,但我的代码似乎非常冗长.如果你能帮帮我的话会很棒.谢谢! 解决方法 这为您的示例输入提供了示例输出,
假设我有一个数组:a = [[1,2,3],[4,5]]
我有另一个数组:b = [[2.5,1.5,3.5],[1.5,2.5]]

我需要对’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,5]]
b=[[2.5,2.5]]
a.zip(b).map {|x,y| x.sort_by_other_array(y).reverse}
#=> [[3,4]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读