11
A
回答
32
您可以使用all?
来检查给定的谓词是否对于枚举中的所有元素都为真。所以:
hash.values.all? {|x| !x.nil?}
或者
hash.all? {|k,v| !v.nil?}
如果你还需要检查,所有的按键都非空,以及,你可以修改,为:
hash.all? {|k,v| !v.nil? && !k.nil?}
2
Enumerable#all?
方法呢正是你所需要的。
10
的另一种方法:
!hash.values.include? nil
0
的元素(值),其是nil
被定义。它被定义为nil
对象。
如果你想看看是否有任何钥匙丢失,然后执行以下操作:
hash = {:key1 => nil, :key2 => 42, :key3 => false}
keys = [:key1, :key2, :key3]
all_defined = keys.all?{|key| hash.has_key?(key)} # Returns true
相关问题
- 1. XmlReader认为所有元素都是EndElements
- 2. 如何隐藏元素只有匹配特定的散列?
- 3. 如何为Prolog指定列表的所有元素都必须是1或0?
- 4. 如何获取已注册的自定义元素列表
- 5. 确保所有更改都已注释
- 6. 元素已定义错误
- 7. 确定矩阵中的所有元素是否都以Python连接
- 8. 如何打印在另一个文件中定义的散列元素?
- 9. 在C#中,如何确定元素的XSD定义的MaxLength
- 10. 如何确定数组中定义的元素的数量?
- 11. 有没有一种简单的方法来验证散列元素的散列存在和被定义?
- 12. 如何解决WSDL中已定义的元素?
- 13. 确定在阵列中的所有值都等于
- 14. unordered_map vs vector +少量元素的自定义散列
- 15. 如何列表中的所有元素追加有效R中
- 16. 默认散列分配中元素的奇数
- 17. 所有浮动元素都显示:块?
- 18. 如何删除选定元素之后的所有元素?
- 19. Ocaml,用列表中给定的元素替换所有指定的元素
- 20. firefox inspector中的所有css字体系列定义都通过
- 21. 如何列出长列表格式中的所有元素?
- 22. 如何在没有CSS的父元素中为所有项定义样式
- 23. 当所有元素都是兄弟元素时,如何在每个元素的XSLT中排序
- 24. 查找给定元素数组(所有元素都是唯一的)中的元素总和为
- 25. 所有书签都重定向到相同的元素
- 26. 指定范围风格,所有的元素都必须
- 27. 如何在java中精确地获取ArrayList的所有元素?
- 28. 如何融合两个内容元素? /所有内容元素都存在吗?
- 29. 的MongoDB:断言,在阵列中的所有元素都没有空
- 30. 确定是否所有元素的数组是素数
没有一个块`所有`自动检查,如果(阵列)单元都是非为零,所以值检查可以简化为`hash.values.all?`,而keys +值则检查为`hash.flatten.all?`! – 2010-11-27 18:57:37
@glenn:不完全。它检查他们是真的。 “假”不是“无”,但它也不是真的。 – sepp2k 2010-11-27 19:03:09