Итак, я пытаюсь создать небольшую функцию titleize. Он принимает строку, разделяет ее пробелами на массив и, если это квалифицирующее слово (первое слово или любые слова, не являющиеся одним из следующих: the и over), использует заглавные буквы перед объединением массива с пробелами. ,
Я просмотрел несколько руководств в стиле Ruby, и они предостерегают от использования циклов for / while в пользу языков, встроенных во времена и каждый цикл. Поскольку область моей проблемы требует, чтобы индекс и массивы были итеративными и индексируемыми в Ruby, я попытался использовать циклы each с двумя аргументами, item и index. Моя проблема в том, что мой индекс ноль (я проверял это). Мой синтаксис неправильный или я что-то упустил? Я осмотрелся онлайн и не смог найти ничего, касающегося этого, а также похожих вопросов. Это мой первый вопрос, и я хотел бы заранее извиниться, если что-то упустил из правил при создании этого поста.
Что нужно сделать: «мост через реку квай» -> «мост через Река Квай "Что делает:" Мост через реку Квай "->" Мост через реку Квай "
def titleize(string)
words = string.split
capitalized_words = []
words.each do |word, index|
#adds words if they are the first word or not one of the following: and, the, over
if(!(word == "and" || word == "the" || word == "over") || index == 0)
capitalized_words.push(word.capitalize)
else
capitalized_words.push(word)
end
end
capitalized_words.join(" ")
end