根据另一个数组(Ruby)的顺序对数组数组进行排序

Din*_*ien 0 ruby arrays

我有两个像这样的数组:arr1 = [name1, name2,name3]arr2 = [[name1,10], [name3,15], [name2, 20]].现在我想arr2根据顺序排序arr1.顺序arr2将改变的,只要顺序arr1变化.我试试这个:

hash_object = arr2.each_with_object({}) do |obj, hash| 
  hash[obj.name] = obj
end

arr1.map { |index| hash_object[index] }
Run Code Online (Sandbox Code Playgroud)

但结果返回[nil,nil,nil].我很困惑这是正确的方式,我只是犯了错误,或者有其他方法来解决我的问题.有人能帮我吗?

spi*_*ann 6

我会做这样的事情:

arr2.sort_by { |element| arr1.index(element.first) }
Run Code Online (Sandbox Code Playgroud)