私は初心者のために本を読んできた、「ファースト・ヘッドHTML5プログラミング」と、コードのこの部分がある:なぜFORループが1回だけ反復するのですか?
現在var movie2 = {
title: "Forbidden Planet",
genre: "Classic Sci-fi",
rating: 5,
showtimes: ["5:00pm", "9:00pm"]
};
function getTimeFromString(timeString) {
var theTime = new Date();
var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?)/);
theTime.setHours(parseInt(time[1]) + (time[3] ? 12 : 0));
theTime.setMinutes(parseInt(time[2]) || 0);
return theTime.getTime();
}
function getNextShowing(movie) {
var now = new Date().getTime();
for (var i = 0; i < movie.showtimes.length; i++) {
var showtime = getTimeFromString(movie.showtimes[i]);
if ((showtime - now) > 0) {
return "Next showing of" + movie.title + " is " + movie.showtimes[i];
}
}
return null;
}
、私はgetNextShowing(movie2)
を呼び出す場合、それは次の上映は5時00分であることを返します。 PM。 ループの条件を「i < = movie.showtimes.length;」に変更しました。それでも1回だけ実行され、午後5時に表示されます。
function getNextShowing(movie) {
var now = new Date().getTime();
for (var i = 0; i <= movie.showtimes.length; i++) {
var showtime = getTimeFromString(movie.showtimes[i]);
return "Next showing of" + movie.title + " is " + movie.showtimes[i];
}
return null;
}
私はここで何かを得ていない午前:私はこの機能を書き換える場合でも、一度だけ ループ反復しますか? 最初の反復i = 0では、ループが実行され、インデックス0にshowtimes
という項目が表示されます。その後、i = 1で、インデックス1の項目が表示されます。
2回実行しないでください。
「返品」とは何かを考えてみてください。 –
@SamKuhmonen oh – Skypho