Ruby — Сравнение массивов и индексов подкачки

#arrays #ruby #indexing #compare-and-swap

Вопрос:

У меня есть массивы строк и массивы целых чисел, которые представляют индексы строк и порядок их замены. Мне нужно поменять индекс X на следующий индекс и сделать то же самое со следующей парой чисел.

Я полагаю, что должен быть способ заменить индексы строки числами и соответствующим образом поменять позицию строки.

Например:

 ``` Array = ["A", "B", "C", "D", "E", "F"] SwapIndexes = [4, 2, 0, 3, 1, 5] `#=gt;can also be understood as [4lt;togt;2, 0lt;togt;3, 1lt;togt;5]` ```  

Результат должен быть:

 ``` NewArray = ["D", "F", "E", "A", "C", "B"] `#=gt;Indexes have beem swaped according to each pair of numbers in SwapIndexes` ```  

Ответ №1:

Ввод

 Array = ["A", "B", "C", "D", "E", "F"] SwapIndexes = [4, 2, 0, 3, 1, 5]  

Код

 SwapIndexes.each_slice(2) do |first, second|  Array[first], Array[second] = Array[second], Array[first] end p Array  

Выход

 ["D", "F", "E", "A", "C", "B"]