簡體   English   中英

在散列數組中,如何刪除 ruby​​ 中某個鍵具有特定值的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM