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