ruby - 从 Ruby 中的哈希数组中删除哈希

标签 ruby arrays hash

我有一个哈希数组如下:

[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}, {"k1"=>"v3", "k2"=>"5.1%"}]

现在,我想首先检查数组是否包含键 "k1" 和值 "v3" 的散列。如果是,那么我想从数组中删除该散列。

结果应该是:

[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}]

最佳答案

使用Array#delete_if :

arr = [{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}, {"k1"=>"v3", "k2"=>"5.1%"}]

arr.delete_if { |h| h["k1"] == "v3" }
#=> [{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}]

如果没有匹配条件的hash,则数组保持不变。

关于ruby - 从 Ruby 中的哈希数组中删除哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19218208/

相关文章:

ruby - 为什么我的 map /正则表达式 block 的输出没有大写?

arrays - 如何从c中的字符串数组中删除重复的字符串

ruby - 如何将第一个元素移动到数组的末尾

arrays - 我将如何分离 JSON 字典值并将它们放入 Swift 数组中?

c - 为什么我在二维数组中得到相同的地址?

ruby-on-rails - 将以数组为键的 ruby​​ 哈希转换为以单个值作为键的 ruby​​ 哈希的最有效方法

hash - Bloomfilter 和 Cassandra = 为什么使用以及为什么散列多次?

java - 如何在 PHP 中重现 java MessageDigest SHA-256 哈希?

ruby-on-rails - 无方法错误 : undefined method `where' for main:Object (rake task) - Rails 4

ruby-on-rails - Rails - 根据 API 版本向响应添加自定义 header