ordered_vowel_words
方法和ordered_vowel_word?
輔助方法接受一個單詞並返回單詞,如果單詞的元音符合(a,e,i,o,u)的順序。這個功能是如何工作的?
我無法理解邏輯。特別是幫助方法中的最後一個塊(0...(vowels_arr.length - 1)).all? do...
如何工作。
有人可以解釋這是如何工作的?我不明白如何在range
上調用all?
。
def ordered_vowel_words(str)
words = str.split(" ")
ordered_vowel_words = words.select do |word|
ordered_vowel_word?(word)
end
ordered_vowel_words.join(" ")
end
def ordered_vowel_word?(word)
vowels = ["a", "e", "i", "o", "u"]
letters_arr = word.split("")
vowels_arr = letters_arr.select { |l| vowels.include?(l) }
(0...(vowels_arr.length - 1)).all? do |i|
vowels_arr[i] <= vowels_arr[i + 1]
end
end
http://ruby-doc.org/core-2.1.0/Enumerable.html – Beartech