我有一个散列,开头是:
{"request"=>{
"security"=>{"username"=>{"type"=>nil}, "password"=>{"type"=>nil}},
"order_i_d"=>{"type"=>nil, "description"=>nil},
"order_number"=>{"type"=>nil},
"show_kit_as_individual_s_k_us"=>false,
"website_i_d"=>{"type"=>nil, "description"=>nil}
}}
我想递归地删除所有nil?
和empty?
的值,但保留falsey
的值。
{"request"=>{
"show_kit_as_individual_s_k_us"=>false
}}
我怎样才能做到这一点?
3条答案
按热度按时间vngu2lb81#
这只是另一个实现,编写的目的是为了好玩和练习。
DeepCompact.deep_compact!(hash)
{ foo: nil }.extend(DeepCompact).deep_compact
using DeepCompact
添加到文件/类将使deep_compact
和deep_compact!
成为该文件/类中所有代码的散列和数组。以下是该模块:
下面是一些如何使用它的例子:
并且输出:
或者只是使用多个宝石,为您提供这一点之一。
2skhul332#
得出以下结论:
rbl8hiat3#
另一种选择: