Sort an array according to the elements of another array

后端 未结 4 1346
北荒
北荒 2020-11-28 09:07

I have an array of ids

a1 = [1, 2, 3, 4, 5]  

and I have another array of objects with ids in random order

a2 = [(obj_w         


        
4条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-28 09:43

    I like the accepted answer, but in ActiveSupport there is index_by which makes creating the initial hash even easier. See Cleanest way to create a Hash from an Array

    In fact you could do this in one line since Enumerable supports index_by as well:

    a2.index_by(&:id).values_at(*a1)
    

提交回复
热议问题