2016-07-31 5 views
-4

こんにちは何らかの理由でコンソールが私に戻ってきますSyntaxError:予期せぬトークンはありますが、実際には問題は分かりません。/Else文がループ内にある場合、javacript

lineN = ["Times Square", "34th", "28th", "23rd", "Union Square", "8th"]; 
storeStops = []; 

function input (start, stop){ 

    if (lineN.indexOf(start)<lineN.indexOf(stop)){ 
     for (var fwd =lineN.indexOf(start) ; fwd < lineN.indexOf(stop) ;foward++); 
     fwd.push(storeStops); 
    }} 
    else {for (var bwd =lineN.indexOf(start) ; bwd < lineN.indexOf(stop) ;bwd--); 
     bwd.push(storeStops) 
    }; 
+3

「if」条件の下に3行、ダブルヒゲがあり、最後に1つを削除してfunctionキーワードを閉じます。 – wonyeouuu

+0

http://jsbeautifier.org/にコードを貼り付けて、正しくインデントします非常に明白になるでしょう。 – jfriend00

+0

@ wonyeouuuさんのコメントに加えて、 'for'の後に'; 'を付けてループを止めます。さらに重要なのは 'fwd = lineN.indexOf(start)'と 'fwd.push(storeStops)'です。変数にプッシュすることはできません。 'push'は配列の関数です。また、 'fwd'をインクリメントしないので、決してループを終了させません。 – Rajesh

答えて

1

これは動作します:

var lineN = ["Times Square", "34th", "28th", "23rd", "Union Square", "8th"]; 
var storeStops = []; 

function input (start, stop) { 
    if (lineN.indexOf(start) < lineN.indexOf(stop)) { 
    for (var fwd =lineN.indexOf(start) ; fwd < lineN.indexOf(stop) ;foward++); 
    fwd.push(storeStops); 
    } else { 
    for (var bwd =lineN.indexOf(start) ; bwd < lineN.indexOf(stop) ;bwd--); 
    bwd.push(storeStops); 
    } 
} 

これらの事がキャッチするのが容易であるように、あなたが正しくあなたのコードをインデントする必要があります。あなたはカッコと括弧で囲まれています。また、JavaScriptではif/elseブロックの後には;がありません。

+0

これでも動作しません。投稿する前に一度コードを実行してください。 'for'と' fwd |の後ろに ';'があります。 bwd'は変数であり、配列ではありません。逆 'storeStops.push(...)'にする必要があります。また私はあなたの答えをdownvoted。どのようにupvoteになったいくつか。奇妙な!いくつかのSOのバグ。 – Rajesh

+0

これは動作します。 OPの論理が何であるか分かりません。著者は 'foward'を数回増やしているようです。そのため、forループのあとに'; 'を残しています。彼が望むものかもしれません。 –

+0

これがそうなら、OPにループの代わりに 'stopIndex-startIndex'を使うように提案することができます。 'fwd.push'も決して動作しません。どんなものでも。 OPが何を望んでいるのかを確認する必要があります。私の理解では、geは2単語の間のインデックス範囲を望んでいます。 – Rajesh

関連する問題