2017-05-14 8 views
0

私は初心者のために本を読んできた、「ファースト・ヘッド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回実行しないでください。

+5

「返品」とは何かを考えてみてください。 –

+0

@SamKuhmonen oh – Skypho

答えて

1

私のような悪い馬鹿がこの "問題"に苦しんでいる場合 - returnが機能の実行を終了するため、すべてです。 Jeeze ..

2

あなたはreturnキーワードの詳細を知る必要があります。

詳しくはthis linkをご覧ください。ありがとうございました。

関連する問題