假设我有以下哈希数组:
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/