ruby - 如何确认散列中的所有元素都已定义?

标签 ruby hash

检查 Ruby 散列中的所有对象是否都已定义(不是 nil)的最佳方法是什么?

如果哈希中至少有一个元素为 nil,则该语句应返回 false。

最佳答案

您可以使用 all? 检查给定谓词是否对可枚举中的所有元素都为真。所以:

hash.values.all? {|x| !x.nil?}

或者

hash.all? {|k,v| !v.nil?}

如果你也想检查,所有的键也是非零的,你可以修改为:

hash.all? {|k,v| !v.nil? && !k.nil?}

关于ruby - 如何确认散列中的所有元素都已定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292920/

相关文章:

ruby - 在 Ruby 中更新哈希值

java - 如果相同的盐用于唯一的输入,哈希算法是否能保证唯一的输出?

hash - 有没有一种方法可以使用 HSCAN(在 JEDIS 中)来检索没有值的键?

ruby - 如何在 rdoc 中显示常量值?

sql - 在 SQL 和 Sequel 中需要帮助,涉及内部连接和 where/filter

ruby - 我可以使用 Ruby 的 OptionParser 来接受任意参数模式吗?

php - 为什么 ruby​​ 的 to_json 会破坏嵌入式 javascript?

algorithm - 使用散列计算整数数组中某个模式出现的次数

algorithm - 查找使用的加密或散列方法

ruby-on-rails - Ruby,使用 Nokogiri 和媒体 :thumbnail