私はRubyを初めて使用しているので、その答えはおそらくかなり簡単です。ループは最後の項目だけを返します
私は文字列(A)の配列をとり、文字列(B)の別の配列と照合して、(A)からの文字列がBの文字列内の部分文字列として存在するかどうかを確認します。
ザ・コンペアは、しかし、私は唯一の比較最後の(A)文字列から結果を取り戻す動作するようです。
これは何ですか?フィルム名が利用可能であるかどうかを確認するには
def find_films_available_online(partial_film_name)
FILM_NAMES.find_all do |film_name|
film_name.downcase[partial_film_name.downcase]
end
end
p find_films_available_online('tomatoes')
# => ["Baked Blue Tomatoes", "Fried Yellow Tomatoes"]
p find_films_available_online('godzooka')
# => []
:ケースを無視して、部分文字列を含むすべての映画の名前を見つけるために、次に
FILM_NAMES = [
'Baked Blue Tomatoes',
'Fried Yellow Tomatoes',
'The thing that ate my homework',
'In a world where',
]
:フィルム名のリストを考えると
def checkIfAvailableOnline(film)
puts "Looking for " + film
lowerCaseFilm = film.downcase
#iterate through the linesarray scanning for the film in question
for line in @linesArray
#get the line in lowercase
lowerCaseLine = line.downcase
#look for the film name as a substring within the line
results = lowerCaseLine.scan(lowerCaseFilm)
if results.length > 0
@availableOnlineArray << results
end
end
end
#-----------------------------------------
listFilmsArray.each {|line| checkIfAvailableOnline(line)}
いくつかのテストコードが役に立ちます。コードをどのようにテストしましたか? –