jie*_*eng 0 ruby hash ruby-on-rails
我的目标是确定散列中是否有空白,如下所示:
{"departure_time_slots"=>{"date"=>[""], "time"=>{"start"=>[""], "end"=>[""]}}}
Run Code Online (Sandbox Code Playgroud)
字符串是嵌套的任意时间.我不想手动检查每一个.如果我可以提取所有字符串而不管它们的深度如何,那将是很好的.有一个简单的方法吗?
这是一个如何提取值的示例.但是,您仍然会遇到将值与键匹配的问题.你不可能同时拥有两者.
# Extend the Hash class
class Hash
def recursive_values
self.values.collect { |v|
v.is_a?(Hash) ? v.recursive_values : v
}.flatten
end
end
Run Code Online (Sandbox Code Playgroud)
用法:
h = {"departure_time_slots"=>{"date"=>[""], "time"=>{"start"=>[""], "end"=>[""]}}}
h.recursive_values
=> ["", "", ""]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |