2016-11-24 4 views
-1

いくつかのブール値プロパティを含むオブジェクトを検証しようとしています。コードはvalidateオブジェクト内のループを想定し、ANYオプションのがfalseをしているTRUE場合trueなオプションの ALL 場合とFALSE戻ります。 BooleanプロパティでJSオブジェクトの検証に関する問題

var validate = { 
 
    text: true, 
 
    email: true, 
 
    phone: false 
 
}; 
 

 
for (var key in validate) { 
 
    if (validate[key] == false) { 
 
    console.log("Not Valid"); 
 
    break; 
 
    } else { 
 
    console.log("Yes Object is Valid"); 
 
    } 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

あなたが見ることができるように

は明らかに私が正しいリターンを得ていないのです。これを修正する方法を教えてください。

+0

私はなぜこの質問に投票しましたか教えてください。 – user1760110

答えて

1
var all_valid = true; 

for (var key in validate) { 
    if (validate[key] == false) { 
    console.log("Not Valid"); 
    all_valid = false; 
    break; 
    } 
} 

if(all_valid) { 
    console.log("Yes Object is Valid"); 
} 
+0

ありがとうJeff唯一のことは、あなたが 'all_valid'にtrueを割り当てる理由です。 – user1760110

+0

これはデフォルトです。検証オブジェクトで偽の値が見つかるとすぐにfalseに変更されます。何も偽でなければ、それは変わらず、結果は真でなければならない。私がそれを初期化しなかった場合の解決方法を考えてみてください。 –

+0

しかし、どのようにそれをfalseに設定することができますか?それが真実であることが証明されない限り、私はそれを偽にする必要があるという意味で、私は正しいのですか? – user1760110

関連する問題