Лучший способ удалить строки в массиве с Ruby
говорит, что у меня есть этот массив:
array = ["str1", "str2", "str3", "str4", "str5", "str6", "str7", "str8"]
что я делаю:
array.delete_if {|i| i == "str1" || i == "str3" || i == "str5"}
я получил:
["str2", "str4", "str6", "str7", "str8"]
Есть ли какой-нибудь лучший подход в рубине, чтобы сделать это?
Ответы
Ответ 1
Вы можете сделать это:
array - %w{str1 str2 str3}
Обратите внимание, что это возвращает новый массив с "str1"
, "str2"
и "str3"
удаленным, а не modifiying array
напрямую (как это делает delete_if
). Вы можете переназначить новый массив на array
примерно так:
array -= %w{str1 str2 str3}
Ответ 2
array.reject{|e| e=~ /str[135]/}