Преобразование массива ключей и массива значений в хеш в Ruby

Если ваши файлы находятся в корневом каталоге, то это не posts, а pages.

Вы можете перемещаться по такому пространству имен, как: {% for page in site.pages %}

19
задан Jeremy Ruten 11 April 2009 в 20:30
поделиться

3 ответа

Следующее работает в 1.8.7:

keys = ["a", "b", "c"]
values = [1, 2, 3]
zipped = keys.zip(values)
=> [["a", 1], ["b", 2], ["c", 3]]
Hash[zipped]
=> {"a"=>1, "b"=>2, "c"=>3}

Похоже, это не работает в старых версиях Ruby (1.8.6). Следующие элементы должны быть обратно совместимы:

Hash[*keys.zip(values).flatten]
53
ответ дан 30 November 2019 в 02:02
поделиться

Другой способ - использовать each_with_index:

hash = {}
keys.each_with_index { |key, index| hash[key] = values[index] }

hash # => {"a"=>1, "b"=>2, "c"=>3}
10
ответ дан 30 November 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: