3

次のような JavaScript のループで入れ子になったスイッチがあります。

for (var i = 0; i < checkBoxIds.length; i++) {
        if ($('#' + checkBoxIds[i]).prop('checked')) {
            var id = checkBoxIds[i];
            var assetCat = id.substring(0, 4);
            switch (id.substring(id.length - 3)) {
                case "scr":
                    if (!sscripts)
                        if (confirm("Name of scripts sub-folder (in shared) is not provided for " + assetCat + ". Press OK to Continue for others?"))
                            continue; else break; //else return
                    //Appending chrs or sets or props to scripts
                    switchAssets(sscripts, IdEnum.SCRIPTS);
                    break;
                case "shd":
                    if (!sshaders)
                        if (confirm("Name of shaders sub-folder (in shared) is not provided for " + assetCat + ". Press OK to Continue for others?"))
                            continue; else break; //else return
                    //Appending chrs or sets or props to shaders
                    switchAssets(sshaders, IdEnum.SHADERS);
                    break;
                case "sim":
                    if (!ssourceimages)
                        if (confirm("Name of sourceimages sub-folder (in shared) is not provided for " + assetCat + ". Press OK to Continue for others?"))
                            continue; else break; //else return
                    //Appending chrs or sets or props to sourceimages
                    switchAssets(ssourceimages, IdEnum.SOURCEIMAGES);
                    break;
                default:
            }
        }
    }

    //...Still doing something (else return; will never kiss this :D )
}

!sscriptsが偽の場合、他のチェック ボックスを続行するかどうかをユーザーに尋ねています。ユーザーがキャンセルした場合は、ループを中断し、関数内の残りのステートメントを実行します。休憩のようです。スイッチの実行を確認するダイアログ内で、for ループを実行するにはどうすればよいですか。

任意の提案をいただければ幸いです。

4

2 に答える 2

0

それがまさにラベルの目的です。

theloop:
  for (var i = 0; i < checkBoxIds.length; i++) {
    ...

    switch (id.substring(id.length - 3)) {

      ...
        break theloop;
        // continue theloop;
于 2013-09-16T05:45:52.650 に答える
-1

これの代わりに

 continue; else break; //else return

これを試して

continue; else break iWantHere;//ラベルでブレーク

コントロールを配置する場所にこのラベルを追加しiWantHereます

Example

 for(...)
 {
    switch('a')
    {
       case 'a': break iWantHere; // This will exit out of loop
       default:
    }
 }  

 iWantHere :
  // Rest of your code
于 2013-09-16T05:44:28.993 に答える