如何在哈希红宝石中插入哈希
问题描述:
我想知道如何将哈希插入到另一个哈希中。例如,在:如何在哈希红宝石中插入哈希
{"abcd"=>{}, "hgfe"=>34567}
我想把"hgfe" => 34567
到"abcd"
关键。
输出:
{"abcd"=>{"hgfe" => 34567}}
IM希望该散列
“##### RUBY HASH ####
(1) INPUT{
'abcd.hgfe' => 34567,
'abcd.efgh.hijk' => 12345,
'abcd.efgh.ijkl' => 56789,
'wxyz.abcd' => 9876,
'wxyz.uvwx.abcd' => 23456,
}
(转换1) OUTPUT
{
'abcd' => {
'efgh' => {
'hijk' => 12345,
'ijkl' => 56789
},
'hgfe' => 34567,
},
'wxyz' => {
'abcd' => 9876,
'uvwx' => {'abcd' => 23456}
}
}
“
我currrent代码:
def method1(hash)
result = {}
array2 = []
hash.each_pair do|k, v|
array1 = k.split('.')
count = array1.length
hash2 = {}
array1.each_with_index do |str, index|
if (index + 1) == count
hash2[str] = v
else
hash2[str] = {}
end
end
puts hash2.inspect
puts "--------------"
end
result
end
hash_result = method1(h2c)
答
请执行以下
hash = {"abcd"=>{}, "hgfe"=>34567}
hash['abcd']['hgfe'] = hash.delete('hgfe')
hash # => {"abcd"=>{"hgfe"=>34567}}
您可以编写类似如下:
def delete_key_and_add_to_another_key(hash, update_key, del_key)
hash[update_key][del_key] = hash.delete(del_key)
hash
end
hash = {"abcd"=>{}, "hgfe"=>34567}
delete_key_and_add_to_another_key(hash, 'abcd', 'hgfe')
答
h = {"abcd"=>{}, "hgfe"=>34567}
f, l = h.partition { |_,v| v =={} }.flatten(1)
{ f.first=> { l.first => l.last } }
#=> {"abcd"=>{"hgfe"=>34567}}
如果有什么的GE neral ...就像它可以是任何键......就像你想每次改变输入一样? – 2014-09-22 07:15:44
@RedondoVelasco包装方法中的逻辑..并使用它。 – 2014-09-22 07:20:43
@RedondoVelasco这就是为什么你应该问*特定*问题。包括您的实际输入和期望的输出,并描述您尝试解决的问题。 – Stefan 2014-09-22 07:22:15