使用Ruby删除数组中字符串的最佳方法

时间:2012-09-14 19:32:23

标签: ruby arrays

让我说我有这个阵列:

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中做到这一点?

2 个答案:

答案 0 :(得分:32)

你可以这样做:

array - %w{str1 str2 str3}

请注意,这会返回一个删除了"str1""str2""str3"的新数组,而不是直接修改array(如delete_if所做的那样)。您可以简洁地将新数组重新分配给array

array -= %w{str1 str2 str3}

答案 1 :(得分:1)

array.reject{|e| e=~ /str[135]/}