假设我有这个数组:array = ["str1", "str2", "str3", "str4", "str5", "str6", "str7", "str8"] 我在做什么:array.delete_if {|i| i == "str1" || i == "str3" || i == "str5"} 我得到了:["str2", "str4", "str6", "str7", "str8"] 在 Ruby 中是否有更好的方法来做这件事?
你可以这样做:array - %w{str1 str2 str3} 请注意,这会返回一个新的数组,其中已删除"str1"、"str2"和"str3",而不是直接修改array(就像delete_if一样)。您可以像这样简洁地重新分配新数组到array:array -= %w{str1 str2 str3}
array -= %w[ ... ]
实现原地重新赋值,但不会改变对原数组的任何引用。 - tadmanarray -= [variable_containing_string]
。 - Cassio Cabral