<分区>
我有以下数组
['a', 'b', 'c']
如何将其转换为如下所示的散列:
{'a' => { position: index of array element a }, 'b' ...., 'c' ... }
最好的问候 格奥尔基。
<分区>
我有以下数组
['a', 'b', 'c']
如何将其转换为如下所示的散列:
{'a' => { position: index of array element a }, 'b' ...., 'c' ... }
最好的问候 格奥尔基。
最佳答案
首先,您可以使用 Array#map
和 Enumerator#with_index
方法创建如下所示的数组:
ary = ['a', 'b', 'c']
temporary = ary.map.with_index { |e, i| [e, { position: i }] }
# => [["a", {:position=>0}], ["b", {:position=>1}], ["c", {:position=>2}]]
然后您可以使用 Array#to_h
将结果数组转换为散列自 Ruby 2.1 起可用的方法:
temporary.to_h
# => {"a"=>{:position=>0}, "b"=>{:position=>1}, "c"=>{:position=>2}}
对于旧版本的 Ruby,Hash.[]
方法将执行:
Hash[temporary]
# => {"a"=>{:position=>0}, "b"=>{:position=>1}, "c"=>{:position=>2}}
关于ruby - 将数组转换为 ruby 中的嵌套哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937328/