2016-11-24 3 views
-1

Я пытаюсь проверить объект, содержащий некоторые логические свойства. Код предположим цикла в validate объекта и вернуть TRUE если ВСЕ вариантов являются true и FALSE если ЛЮБОЙ из опций 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, как только он обнаружит ложное значение в объекте validate. Если ничто не является ложным, это не изменится, и результат должен быть правдой. Постарайтесь подумать, как будет выглядеть решение, если я не инициализирую его так. –

+0

но как wen может установить его как ложное? Я имею в виду, что с точки зрения безопасности нам нужно держать его ложным, если не доказать, что это правда, я прав? – user1760110

Смежные вопросы