У меня есть массив строк неизвестной длины (но, допустим, до 5). У меня также есть пустой хэш h = {}
и значение.Как вставить значения в динамически вложенный хеш?
Я хочу, чтобы преобразовать массив и значение хэш следующим образом:
val = 1
h = {}
a = ['a', 'b', 'c', 'd']
# result I want:
{
'a' => {
'b' => {
'c' => {
'd' => 1
}
}
}
}
Что важно, что некоторые из ключей, возможно, уже существует (создан в итерации цикла раньше). Таким образом, я мог бы:
val = 2
h = {'a' => {'b' => {'c' => {'d' => 1}}}}
a = ['a', 'b', 'c', 'e']
# result I want:
{
'a' => {
'b' => {
'c' => {
'd' => 1,
'e' => 2
}
}
}
}
Любые идеи о том, как это сделать?
Я собирался опубликовать то же самое :-) Вы можете использовать '* список, хвост = list' избежать мутирует' list' – Stefan
Правда, это, вероятно, лучше , Позвольте мне изменить это. – tadman