[英]Ruby : How to sort an array of hash in a given order of a particular key
[英]In an array of hash how to delete an element with particular value for a key in ruby?
在散列数组中如何删除具有特定键值的元素?
例如:
array = [ {"lang"=> 'Ruby', "is_using"=> "Yes"}, { "lang"=> "Go", "is_using" => "No"}, {"lang"=> "Rust", "is_using"=> "No"} ]
我需要编写一个最小且高效的 ruby 脚本,该脚本从数组中删除所有元素,这些元素将“No”作为键“is_using”的值。
使用Array#delete_if
:
array = [ {"lang"=> 'Ruby', "is_using"=> "Yes"}, { "lang"=> "Go", "is_using" => "No"}, {"lang"=> "Rust", "is_using"=> "No"} ]
array.delete_if { |hash| hash['is_using'] == 'No' }
#=> [{ "lang" => "Ruby", "is_using" => "Yes" }]
如果您不想改变原始数组,则可以使用reject
:
array = [{ "lang"=> 'Ruby', "is_using"=> "Yes" },
{ "lang"=> "Go", "is_using" => "No" },
{ "lang"=> "Rust", "is_using"=> "No" }]
array.reject { |h| h["is_using"].eql?('Yes') }
# [{"lang"=>"Go", "is_using"=>"No"}, {"lang"=>"Rust", "is_using"=>"No"}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.