0
var bookmark_iterator = page_element.firstChild;
do {

    // start insertion

    if (bookmark_iterator === null) {
        page_element.appendChild(div_el);
        break;
    }

    // middle insertion

    if (div_el.id < bookmark_iterator.id) {
        page_element.insertBefore(div_el, bookmark_iterator);
        break;
    }

    // end insertion

    if (bookmark_iterator === page_element.lastChild) {

        // if null will insert at the end per reference

        bookmark_iterator = null;
        page_element.insertBefore(div_el, bookmark_iterator);
        break;
    }

    // increment loop

    bookmark_iterator = bookmark_iterator.nextSibling;
} while (bookmark_iterator !== null);

問題は、http://jslint.comがエラーをスローすることです。

line 643 character 19
Unexpected 'else' after disruption.

if/else 構造に break ステートメントがあるためです。

これは、単純なアルファベット順の挿入を複雑にしすぎたと思います。jslint を通過するようにこれを記述する簡単な方法またはより良い方法はありますか?

4

1 に答える 1

3

elseそれらのブロックの後を取り除くだけです。JSLint が伝えようとしているのは、周囲のブロック ステートメントから制御を移すブロックelseの後に使用するのは意味がないということです。if構文的には問題ありませんが、まあ、間抜けです。elseの後の使用は、制御の流れがブロックから後続のコードにif進む場合にのみ役立ちます。ifそこにbreakステートメントがあるので、それは決して起こりません。

全体的なロジックを改善できるかどうかは、コンテキストがなければ何とも言えません。

于 2013-05-27T15:45:25.443 に答える