从哈希中删除NilClass值

时间:2015-10-08 20:16:18

标签: ruby hash

我想从散列中删除NilClass的值:

args = { 'name' => 'myname', 'description' => NilClass, 'homepage' => NilClass,
         'private' => NilClass, 'has_issues' => NilClass, 'has_wiki' => false,
         'has_downloads' => NilClass }

我尝试了以下内容:

args.reject!{|k,v| v.nil?}

这将返回原始哈希,所有值仍然存在。

2 个答案:

答案 0 :(得分:5)

你有正确的想法,但Ruby中csv的价值不是零。自己尝试一下吗?

$ find /mnt/DCS_01 -size +10000k -exec ls -sd {} + "csv" > file.txt

您必须明确拒绝等于NilClass的值。

NilClass.nil?
=> false

答案 1 :(得分:0)

您可以进行monkeypatching并在哈希类中添加一个紧凑方法,如本文所述。

Removing all empty elements from a hash / YAML?