Ruby/删除匹配的键/哈希数组后的所有内容

标签 ruby

假设我有以下哈希数组:

h = [{"name" => "bob"}, {"car" => "toyota"}, {"age" => "25"}]

我有以下匹配键:

k = 'car'

如何将 'k' 匹配到 'h' 并在匹配后删除每个元素以使其返回:

h = [{"name" => "bob"}, {"car" => "toyota"}]

最佳答案

只需将散列转换为数组,完成您的任务,然后再转换回来

h = {"name" => "bob", "car" => "toyota", "age" => "25"}

array = h.to_a.flatten
index = array.index('car') + 1

h = Hash[*array[0..index]]
=> {"name"=>"bob", "car"=>"toyota"}

顺便说一句,从 Ruby 1.9 开始哈希才被排序

关于Ruby/删除匹配的键/哈希数组后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387771/

相关文章:

ruby-on-rails - 未定义方法 model_name

ruby-on-rails - 记录 Rails 应用程序中的所有方法调用

ruby-on-rails - 使用 RVM 升级到 Ruby 2.1.2 后出现 PaperTrail (paper_trail) 错误。未初始化常量 PaperTrail::Rails::Engine

ruby,使用正则表达式查找两个字符串之间的内容

ruby - 如何使用 Mechanize gem 获取网站的所有链接?

ruby - 为 ordered_vowel_words 实现一个方法

ruby - 循环检查用户输入以匹配字符串?

ruby-on-rails - ActiveRecord::Serializer 中的条件侧载数据(基于 Controller 操作)

ruby - 如何读取 Rack 请求中的POST数据

ruby - 我们可以在 ruby​​ 中使用 'else unless' 吗?