Объяснение для начинающих
Эти ответы великолепны.Я искал немного больше объяснения о том, как эти ответы работают.Вот что происходит в ответах выше, как переключать элементы по значению и ссылки на документацию.
# sample array
arr = ["a", "b", "c", "d", "e", "f", "g", "h"]
# suppose we want to move "h" element in position 7 to position 2 (trekd's answer)
arr = arr.insert(2, arr.delete_at(7))
=> ["a", "b", "h", "c", "d", "e", "f", "g"]
Это работает, потому что arr.delete_at(index)
удаляет элементы по указанному индексу ('7' в нашем примере выше)) и возвращает значение, которое было в этом индексе.Таким образом, запуск arr.delete_at(7)
приведет к:
# returns the deleted element
arr.delete_at(7)
=> "h"
# array without "h"
arr
=> ["a", "b", "c", "d", "e", "f", "g"]
Собрав все вместе, метод insert
теперь поместит этот элемент "h" в позицию 2. Для ясности разделим его на два шага:
# delete the element in position 7
element = arr.delete_at(7) # "h"
arr.insert(2, element)
=> ["a", "b", "h", "c", "d", "e", "f", "g"]
Переключение элементов по значению
Предположим, вы хотите переместить элемент в массиве со значением «h» независимо от его положения в положение 2. Это можно легко сделать с помощью индексаМетод:
arr = arr.insert(2, arr.delete_at( arr.index("h") ))
Примечание. Выше предполагается, что в массиве есть только одно значение "h".
Документация