0
if(isValid(id) && isValid(id2)) {
    //do sth..
}

id と id2 が有効かどうかを確認したいのですが、そうでない場合は、エラー メッセージを出力して false を返します。

短絡評価の問題点は、false の場合に err メッセージが 1 つしか出力されないことです。

両方とも false の場合に 2 つのエラー メッセージを出力する方法はありますか??

4

3 に答える 3

0
var firstValid = false;
if (isValid(id) && (firstValid=true) && isValid(id2)){
  // do the things for everything is valid
}else if (!firstValid && isValid(id2)){
  // do other things
} 

またはどうですか

var firstValid = false;
if (isValid(id) && (firstValid=true) && isValid(id2) || firstValid && isValid(id2)){
 // do stuff 
}

個人的には、これまたは実際の製品コードで示されている他のトリックを実行することはお勧めしませんが、コードを高速化するために短絡が使用されているためです。

UI の更新は検証チェックの外部で行う必要があるかもしれませんし、UI の正しい部分を更新する両方の単一のチェックが必要かもしれません。あなたのアプリケーションの詳細についてはよくわかりませんが、問題を解決する最善の方法ではなく、問題が発生した理由を考えるためにもう少し時間を費やすことをお勧めします.

于 2013-11-07T06:03:50.493 に答える