arrays - 如何从哈希数组中过滤掉哈希?

标签 arrays ruby select filter

我的 params 看起来像这样:

params = [{:limit=>5}, {:skip=>0}, {:asc=>""}, {:desc=>""}]

我想删除值为0 或空字符串的散列元素。我尝试这样做:

params.reject { |h| h.values !== 0 }

但这给了我一个语法错误

还试过:

params.select { |h| h.values != 0 || h.values != "" }

但这没有给我任何帮助。我做错了什么?

最佳答案

你有一个散列数组,所以你必须对每个散列进行操作。

params.reject { |hash| hash.any? { |_, v| [0, ''].include?(v) }}
#=> [{:limit=>5}]

关于arrays - 如何从哈希数组中过滤掉哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41341839/

相关文章:

ruby-on-rails - 计算多个数组之间的可能组合

mysql - SQL:根据其他重复值选择重复值的精确最大值

jquery - 无法从 jqGrid (jQuery) 中的单元格获取对象

arrays - 数组<编号> : get and set Int values without casting

ruby - MacPorts 如何安装软件包?如何激活通过 MacPorts 完成的 Ruby 安装?

ruby - 如何使用 watir 访问 <body> 标签

SQL根据另一列的值选择列

java - 如何读取由空格分隔的 int 和字符串混合的文本文件并将每个文件存储到数组中

c - Getchar在c中只保存1个字符

c - 为什么我在大输入时遇到 scanf 的段错误