Reordenar una matriz en el mismo orden que se reordenó otra matriz
-
30-10-2019 - |
Pregunta
Tengo dos matrices a
, b
de la misma longitud:
a = [a_1, a_2, ..., a_n]
b = [b_1, b_2, ..., b_n]
Cuando ordeno a
usando sort_by!
, los elementos de a
se organizará en diferentes orden:
a.sort_by!{|a_i| some_condition(a_i)}
¿Cómo puedo reordenar? b
en el mismo orden/reordenamiento que el reordenamiento de a
? Por ejemplo, si a
después sort_by!
es
[a_3, a_6, a_1, ..., a_i_n]
Entonces quiero
[b_3, b_6, b_1, ..., b_i_n]
Editar
Necesito hacerlo en su lugar (es decir, retener el objeto_id de a
, b
). Las dos respuestas dadas hasta ahora son útiles en eso, dadas las matrices ordenadas:
a_sorted
b_sorted
puedo hacer
a.replace(a_sorted)
b.replace(b_sorted)
Pero si es posible, quiero hacerlo directamente. Si no, aceptaré una de las respuestas ya dadas.
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow