2016-11-24 69 views
-1

我想驗證包含某些布爾屬性的對象。該代碼是假設循環在validate對象並返回TRUE如果ALL的選項trueFALSE如果任何選項false驗證具有布爾屬性的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

謝謝傑夫唯一看起來更奇怪的事情就是爲什麼你將true賦給'all_valid' – user1760110

+0

這是默認值。只要在驗證對象中發現錯誤值,它就會變爲false。如果沒有錯誤,那麼它不會改變,結果必須是真實的。如果我沒有像這樣初始化它,試着想一下解決方案的外觀。 –

+0

但是如何將它設置爲假?我的意思是從安全角度來看,我們需要保持虛假,除非證明這是真的,我是對的嗎? – user1760110