Итак, вот в чем дело, я много лет гуглял, чтобы найти решение этой проблемы, и хотя их там много, похоже, они не выполняют ту работу, которую я ищу.
В основном у меня есть массив, структурированный так
["item 1", "item 2", "item 3", "item 4"]
Я хочу преобразовать это в хэш, чтобы он выглядел так
{ "item 1" => "item 2", "item 3" => "item 4" }
то есть элементы в «четных» индексах являются ключами, а элементы в «нечетных» индексах являются значениями.
Есть идеи, как сделать это чисто? Я полагаю, что методом грубой силы было бы просто вытащить все четные индексы в отдельный массив, а затем зациклить их, чтобы добавить значения.
*
называется знак оператора. Он берет массив и преобразует его в буквальный список элементов. Итак*[1,2,3,4]
=>1, 2, 3, 4
. В этом примере вышесказанное эквивалентно выполнениюHash["item 1", "item 2", "item 3", "item 4"]
. ИHash
имеет[]
метод, который принимает список аргументов (создает четные ключи ключей и нечетные значения индексов), ноHash[]
не принимает массив, поэтому мы разбиваем массив на части с помощью*
.