2016-11-14 13 views
-2

whileループをforループに変換する際に問題があります。これはforループ形式でどのように見えますか、どんなヘルプも本当に感謝しています。実際のファイルは、githubの上に格納されている>github linkwhileループをfor JavaScriptに変換するにはどうすればよいですか?

  //language 
      while ((m = regex.exec(str)) !== null) { 
       if (m.index === regex.lastIndex) { 
        regex.lastIndex++; 
       } 
       m.forEach((match, groupIndex) => { 
        output = output+`{\n"Language": "${match}"\n`; 
       }); 
      } 
+5

このコードは 'for'文にはよく似ていません。なぜそれを変更したいのですか? –

+1

forループの中間文は、whileループと同じです。 {...} ' –

+0

' for loop'は、 'iteration'の回数や2つの極性を知っているときには良いです(for(;(m = regex.exec(str))!== null;)。ここであなたのテストがいつ '良い'かを知ることができないので、 'loop'を変更することはできません。 – Alexis

答えて

3

リコールwhileループの標準形式:

while (test) { 
    body; 
} 

そしてforループの標準形式:

for (initialization; test; update) { 
    body; 
} 

それはです可能であればwhileforに変更してください

for (m = regex.exec(str); m !== null ; m = regex.exec(str)) { 
    if (m.index === regex.lastIndex) { 
     regex.lastIndex++; 
    } 
    m.forEach((match, groupIndex) => { 
     output = output + `{\n"Language": "${match}"\n`; 
    }); 
} 

初期化と更新は同じであることに注意してください。重複コード。あるいは

:初期化及び更新の両方が空白であること

for (; (m = regex.exec(str)) !== null ;) { 
    if (m.index === regex.lastIndex) { 
     regex.lastIndex++; 
    } 
    m.forEach((match, groupIndex) => { 
     output = output + `{\n"Language": "${match}"\n`; 
    }); 
} 

注意。

+0

問題は、自分のコードで多くのwhileループがあり、すべてのwhileループを1 forループに変換したいということです。その背後にある物語は次のとおりです。最初のフィールドにログファイルをドロップし、滑らかなスタート、すべての行を実行し、フォーマットされたJSON出力を作成します。現時点では、各RegExを実行する出力が作成され、適切な形式でフォーマットされていません。各行ですべてのRegExルールを実行してから、「ログファイル」の次の行に移動する必要があります。なぜ私はforループを持つ必要があると思っているのですか? – Tony

+1

@tonymあなたが本当に達成しようとしていることを示すためにあなたの質問を修正する必要があります。いくつかのwhileループを表示し、その結果がどうなるべきかを説明してください。 – Barmar

関連する問題