ループ.each()
内から匿名関数を使用する jQuery呼び出しを使用しています。for
JSLint は、「ループ内で関数を作成しないでください」という警告を表示します。
これは、より大きな関数のコード スニペットです。本質的には、ゲームの各プレイヤーがまだ「生きている」かどうか (ボード上に少なくとも 1 つの駒があるかどうか) をチェックしています。
for( i=0 ; i<PLAYERLIMIT ; ++i ) {
if( player[i].status !== 0 ) { //skip already dead players
var stillAlive = false;
$board.find("td").each( function() { //this func causes JSLint warning
if( $(this).data("owner") === player[i].number ) {
stillAlive = true;
return false;
}
});
if( !stillAlive ) {
//... action to take for dead players
}
}
}
この警告を削除する方法を確認できます。関数を個別に宣言して呼び出すだけです。しかし、これは非常に小さなワンショット関数であり、基本的にこれをネストされたループの本体と見なします (基本的に呼び出しを次のようfor
に読んでいます) 。.each()
for $("td") in $board {}
このJSLintはスタイル警告の1つを提供していますか?それとももっと深刻ですか?
基本的に、これを修正するのが最善ですか?
警告の理由を理解したいので、警告が存在する理由についてのコメントは役に立ちます(これも実用的かスタイルかを知りたいです)。