Ruby 从列表中创建嵌套哈希
我得到了一个列表l=[:foo,:bar,:baz],并希望通过编程方式将一个变量分配到哈希h={} 散列应该看起来像Ruby 从列表中创建嵌套哈希,ruby,hash,Ruby,Hash,我得到了一个列表l=[:foo,:bar,:baz],并希望通过编程方式将一个变量分配到哈希h={} 散列应该看起来像 { foo: { bar: { baz: some_value } } } 注意:键是变量 问题: 我该怎么做? 您可以在反向列表中使用: l = [:foo, :bar, :baz] h = l.reverse.inject(:some_value) do |value, key| { key => value } end p h # {:foo=>{:ba
{ foo: { bar: { baz: some_value } } }
注意:键是变量
问题:
我该怎么做?
您可以在反向列表中使用:
l = [:foo, :bar, :baz]
h = l.reverse.inject(:some_value) do |value, key|
{ key => value }
end
p h
# {:foo=>{:bar=>{:baz=>:some_value}}}
用于首先构建最内部的散列,然后继续向外构建嵌套散列。首先显示您已经尝试过的内容。您需要这些未来键的值。h应该是什么样子?@mudasobwa当我不知道如何做时,如何显示它,genius?!:/@EricDuminil h应该如下所示:h={foo:{bar:{baz:some_value}}}eval input.inspect.gsub/\s*,\s*,'=>{.gsub/[\[\]]/,{'['=>'{'.]'=>=>:some_value{'}*input.size}: