2016-11-24 36 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