Arrays ruby如何从哈希数组中删除元素?
我试图从示例中删除001和002的id和名称的整行:Arrays ruby如何从哈希数组中删除元素?,arrays,ruby,hash,hashmap,Arrays,Ruby,Hash,Hashmap,我试图从示例中删除001和002的id和名称的整行: sample = [{"id"=>"000", "name"=>"Bob"}, {"id"=>"001", "name"=>"Sally"}, {"id"=>"002", "name"=>"Spike"}, {"id"=>"003", "name"=>"Junior"}, {"id"=>"004", "name"=>"Tater"}] rem
sample = [{"id"=>"000", "name"=>"Bob"},
{"id"=>"001", "name"=>"Sally"},
{"id"=>"002", "name"=>"Spike"},
{"id"=>"003", "name"=>"Junior"},
{"id"=>"004", "name"=>"Tater"}]
remove_ele = ["001","002"]
我尝试了以下方法,但似乎不起作用:
sample.delete_如果{| key,value | sample[x][id]==remove|ele[x]}
本质上,我试图比较2和remove_ele中的任何匹配,它只会删除示例中的整个行/元素
请在ruby中以最佳方式提供帮助。如果出现以下情况,您提供的用于删除\u的块存在一些问题: 由于sample是一个散列数组,所以使用delete_if迭代器将散列传递给块。也就是说,它应该是|散列|,而不是|键、值| 其次,x不会在块中定义 功能解决方案如下:
remove_ele.each do |id_to_remove|
sample.delete_if { |hash| hash['id'] == id_to_remove }
end
或者,哪个做同样的事情:
sample.delete_if { |hash| remove_ele.include? hash['id'] }
在以下情况下,您为删除\u提供的此块存在一些问题: 由于sample是一个散列数组,所以使用delete_if迭代器将散列传递给块。也就是说,它应该是|散列|,而不是|键、值| 其次,x不会在块中定义 功能解决方案如下:
remove_ele.each do |id_to_remove|
sample.delete_if { |hash| hash['id'] == id_to_remove }
end
或者,哪个做同样的事情:
sample.delete_if { |hash| remove_ele.include? hash['id'] }
sample.delete_if{x | remove|ele.include?x['id']}sample.delete_if{x | remove|ele.include?x['id']}!Upvot,因为您提供了代码解释!由于缺乏解释,投票被否决。提供没有解释的代码对由于缺乏解释而投票的opDown没有任何作用。提供没有解释的代码对op没有任何作用