检查哈希表中是否包含任何空值

6

我有以下哈希表,想找一个简单的方法来检查哈希表中的所有内容是否为空。并不是所有的值都在哈希表中可见,所以有时候哈希表会没有 end_date/ start_date 或其他值。

test
=> {"0"=>
  {"_destroy"=>"",
   "START_DATE"=>"",
   "END_DATE"=>"",
   "EMPLOYER"=>"",
   "JOB_TITEL"=>"",
   "FUNCTIONAL_AREA"=>"",
   "INDUSTRY"=>"",
   "DESCRIPTION_TXT"=>"",
   "COUNTRY"=>"",
   "CITY"=>"",
   "REGION"=>"",
   "CONTRACT_TYPE"=>""},
 "1"=>
  {"_destroy"=>"",
   "START_DATE"=>"",
   "END_DATE"=>"",
   "EMPLOYER"=>"",
   "JOB_TITEL"=>"",
   "FUNCTIONAL_AREA"=>"",
   "INDUSTRY"=>"",
   "DESCRIPTION_TXT"=>"",
   "COUNTRY"=>"",
   "CITY"=>"",
   "REGION"=>"",
   "CONTRACT_TYPE"=>""},
 "2"=>
  {"_destroy"=>"",
   "START_DATE"=>"",
   "END_DATE"=>"",
   "EMPLOYER"=>"",
   "JOB_TITEL"=>"",
   "FUNCTIONAL_AREA"=>"",
   "INDUSTRY"=>"",
   "DESCRIPTION_TXT"=>"",
   "COUNTRY"=>"",
   "CITY"=>"",
   "REGION"=>"",
   "CONTRACT_TYPE"=>""}}

以伪代码表示,如下所示:
Start loop
-> check if current position contains an empties 
=> if all is empty delete position
-> continue
end loop

在这个例子中,这意味着在循环结束时哈希表内将为空。

祝好!


2
请将以下有关编程的内容从英语翻译为中文。仅返回已翻译的文本:如果是文本,请勿粘贴屏幕截图。而是将其粘贴为文本。 - sawa
1
很抱歉,我编辑了主题并删除了图片。然后粘贴了代码。 - FastSolutions
标题中说要检查是否有任何空字段,而在文本中则说要检查是否所有内容都为空。它们的意思不同。后者包含前者。 - sawa
我把所有的值都改变了。 - FastSolutions
1个回答

6

使用Hash#delete_if方法:

test.delete_if { |i,h| h.all? { |k,v| v.empty? } }

1
谢谢您的回复,这个代码非常好用!这真是太棒了,我非常感谢您! - FastSolutions

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接