我需要在所有3个测试中都有效。我需要迭代代码,直到数组只返回最长的代码。
# Tests
p longest(['tres', 'pez', 'alerta', 'cuatro', 'tesla', 'tropas', 'siete']) == ["alerta", "cuatro", "tropas"]
p longest(['gato', 'perro', 'elefante', 'jirafa']) == ["elefante"]
p longest(['verde', 'rojo', 'negro', 'morado']) == ["morado"]
答案 0 :(得分:2)
好的,让我们把它分解......
首先:找出最长的单词有多长:
words = ['tres', 'pez', 'alerta', 'cuatro', 'tesla', 'tropas', 'siete']
words.map(&:length).max
#=> 6
其次选择具有该长度的所有单词:
words.select { |w| w.length == 6 }
#=> ["alerta", "cuatro", "tropas"]
将其与方法相结合:
def longest(words)
max_length = words.map(&:length).max
words.select { |w| w.length == max_length }
end