Domanda

Ho due array a, b della stessa lunghezza:

a = [a_1, a_2, ..., a_n]
b = [b_1, b_2, ..., b_n]

Quando mi ordino a usando sort_by!, gli elementi di a sarà organizzato in diverso ordine:

a.sort_by!{|a_i| some_condition(a_i)}

Come posso riordinare b nello stesso ordine/riarrangiamento del riordino di a? Ad esempio, se a dopo sort_by! è

[a_3, a_6, a_1, ..., a_i_n]

Allora voglio

[b_3, b_6, b_1, ..., b_i_n]

Modificare

Devo farlo sul posto (cioè conservare l'oggetto_id di a, b). Le due risposte fornite finora sono utili in questo, date gli array ordinati:

a_sorted
b_sorted

posso fare

a.replace(a_sorted)
b.replace(b_sorted)

Ma se possibile, voglio farlo direttamente. In caso contrario, accetterò una delle risposte già fornite.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top