ruby - 参数错误 : comparison of NilClass with 1 failed min_by

标签 ruby enumerable

我需要找出不带 nil 的数组的最小值。

[{val: 1},{val: nil}].min_by { |v| v[:val] }

得到

ArgumentError:NilClass 与 1 的比较失败 min_by

我的下一个方法是:

[{val: 1},{val: nil}].min_by { |v| v[:val] || 0 }

但这会返回 {:duration=>nil}

我只想得到没有零值的最小值 - 预期为 1

最佳答案

[{val: 1},{val: nil}].delete_if { |v| v[:val].nil? }.min_by { |v| v[:val] }

您可以使用 delete_if排除与 block 匹配的数组元素,在您的值为 nil 的情况下。

关于ruby - 参数错误 : comparison of NilClass with 1 failed min_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453316/

相关文章:

ruby-on-rails - Ruby 的自动代码质量工具?

ruby - Redis ZCARD 多键(redis-rb)

javascript - 将可枚举函数添加到对象原型(prototype)时未捕获类型错误

c# - File.ReadLines(filePath).First() 是否立即关闭文件?

ruby-on-rails - Rails 关联扩展抛出未定义的方法

ruby - 是否有 ruby​​ oneliner 可以在没有临时副本的情况下连接嵌套数组?

ruby - 将数组转换为哈希,同时删除重复键和添加值

Python 等同于 Ruby 的#each_cons?

ruby-on-rails - Rails Associations - 强大的参数构建

context-free-grammar - 非上下文无关的递归可枚举语言的示例