我有一个嵌套哈希:
hash = {
"a" => "a",
"b" => {
"c" => "c",
"d" => {
"e" => "e"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个哈希:
new_value = {
"b.d.e" => "new value"
}
Run Code Online (Sandbox Code Playgroud)
我需要某种"魔法"函数来替换散列值hash["b"]["d"]["e"],如:
magical_function(hash, new_value)
#=> hash = {
"a" => "a",
"b" => {
"c" => "c",
"d" => {
"e" => "new value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道怎么做.有人可以帮忙吗?
如果以直接的方式实施它并不神奇:
merge_hash.each do |key, value|
parts = key.split('.')
leaf = parts.pop
target = parts.inject(hash) do |h, k|
h[k] ||= { }
end
target[leaf] = value
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |