Die folgende Funktion durchläuft die Werte eines Objekts. Wenn der Wert leer ist this.hasInvalidValue
wird auf true
, wenn sie nicht leer ist this.hasInvalidValue
-false
gesetzt:Wie setze ich eine Variable auf false, wenn mindestens ein Element in einer Schleife false zurückgibt?
user: {
email: '',
password: ''
}
function validate() {
for (let key in this.object) {
const isValueInvalid = !this.object[key]
if (this.isKeyRequired(key) && isValueInvalid) {
this.hasInvalidValue = true
}
if (this.isKeyRequired(key) && !isValueInvalid) {
this.hasInvalidValue = false
}
}
}
Es gibt ein Problem mit diesem. Betrachten Sie ein Login-Formular:
Email // empty (this.hasInvalidValue is set to false)
Password // not empty (this.hasInvalidValue is set to true)
// Final value of this.hasInvalidValue is true. Good
Email // not empty (this.hasInvalidValue is set to false)
Password // empty (this.hasInvalidValue is set to true)
// Final value of this.hasInvalidValue is false. Not good
Wie ich es kann so validate
Sätze this.hasInvalidValue
-false
, wenn mindestens 1 Wert false
ist. Und zu true
nur wenn alle Werte nicht leer sind?
Sobald Sie ein ungültiges Feld finden, können Sie eine 'break;' - Anweisung verwenden, um die for-Schleife zu verlassen, da die restlichen Felder nicht überprüft werden müssen. – scoots
Was ist 'this.object'? Bitte stellen Sie Ihre Frage klarer. – PHPglue