私はこのような2つの配列を持っています: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] }
しかし、結果は[nil、nil、nil]を返しました。私はこれが正しい方法であると混乱しました、そして私は間違いを犯しただけであるか、私の問題を解決する別の方法があります。誰かが私を助けることができますか?
arr1 = ["name1", "name2", "name3"]
=> ["name1", "name2", "name3"]
arr2 = [["name1",10], ["name3",15], ["name2", 20]]
=> [["name1", 10], ["name3", 15], ["name2", 20]]
arr2.sort_by { |e| arr1.index(e[0]) }
=> [["name1", 10], ["name2", 20], ["name3", 15]]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加