Подтвердить что ты не робот

Лучший способ удалить строки в массиве с 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"]

Есть ли какой-нибудь лучший подход в рубине, чтобы сделать это?

4b9b3361

Ответ 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]/}