Как выборочно удалять элементы из массива в al oop и выводить обратно в строку - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующий метод, который берет строку и возвращает эту строку со всеми удаленными гласными. Я превращаю жало в массив и использую al oop для удаления гласных, а затем конвертирую его обратно в строку.

def disemvowel(string)
  i = 0
  arr = string.split
  arr_new = []
  while i <= string.length
    if arr[i] != ("a" || "e" || "i" || "o"|| "u")
      arr_new << arr[i]
    end
  i +=1
  end
  arr_new.join
end

Результат выходит не так, как ожидалось. Как я могу изменить свой текущий метод? Другие подходы приветствуются.

1 Ответ

1 голос
/ 07 мая 2020

Enumerable # reject или Enumerable # select - это идиоматические c способы фильтрации элементов из массива:

def disemvowel(string)
  string.split("").reject do |char|
    %w{a e i o u}.include?(char)
  end.join
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...