Возврат первого слова в массиве, который начинается с «ва» - PullRequest
0 голосов
/ 12 марта 2019

У меня есть массив, который содержит смесь строк и символов.

array = ["candy", :pepper, "wall", :ball, "wacky"]

Цель состоит в том, чтобы вернуть первое слово, которое начинается с букв "wa".

Вотмой код:

def starts_with_wa
  deleted_words = array.delete_if{|word| word.class == Symbol}
  ## deletes the symbols in the original array
  deleted_words.find do |w|
  ##it should iterate through the deleted_Words array but it shows error of undefined local variable or method "array" for main:Object
    w.start_with?('wa')
  end
end

starts_with_wa

1 Ответ

2 голосов
/ 12 марта 2019

Вам необходимо передать array в ваш метод, иначе он не будет виден в области действия метода. Кроме того, я предлагаю простой рефакторинг:

array = ["candy", :pepper, "wall", :ball, "wacky"]

def starts_with_wa(words)
  words.find { |word| word.is_a?(String) && word.start_with?('wa') }
end 

starts_with_wa(array)
#=> "wall"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...