У меня есть два массива a
, b
одинаковой длины:
a = [a_1, a_2, ..., a_n]
b = [b_1, b_2, ..., b_n]
Когда я сортирую a
, используя sort_by!
, элементы a
будут расположены по-разномуorder:
a.sort_by!{|a_i| some_condition(a_i)}
Как я могу изменить порядок b
в том же порядке / перестановке, что и порядок a
?Например, если a
после sort_by!
равно
[a_3, a_6, a_1, ..., a_i_n]
, тогда я хочу
[b_3, b_6, b_1, ..., b_i_n]
Изменить
Мне нужно сделатьэто на месте (то есть, сохраните object_id a
, b
).Два ответа, приведенные до сих пор, полезны в этом, учитывая отсортированные массивы:
a_sorted
b_sorted
Я могу сделать
a.replace(a_sorted)
b.replace(b_sorted)
, но если возможно, я хочу сделать это напрямую.Если нет, я приму один из ответов, которые уже даны.