我有两个像这样的数组: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].我很困惑这是正确的方式,我只是犯了错误,或者有其他方法来解决我的问题.有人能帮我吗?
我会做这样的事情:
arr2.sort_by { |element| arr1.index(element.first) }
Run Code Online (Sandbox Code Playgroud)