Ich muss beide Seiten einer &&
Anweisung ausführen, aber dies wird nicht passieren, wenn der erste Teil false
zurückgibt. Beispiel:Wie vermeidet man Kurzschlüsse in JavaScript?
function checkSomething(x) {
var not1 = x !== 1;
if (not1) doSomething(x);
return not1;
}
function checkAll() {
return checkSomething(1)
&& checkSomething(3)
&& checkSomething(6)
}
var result = checkAll();
Das Problem hierbei ist, dass doSomething(x)
sollte zweimal durchgeführt werden, sondern weil checkSomething(1)
kehrt false
, die anderen Kontrollen werden nicht genannt werden. Was ist der einfachste Weg, alle Prüfungen auszuführen und das Ergebnis zurückzugeben?
Ich weiß, ich könnte alle Werte in Variablen speichern und diese anschließend überprüfen, aber das sieht nicht sehr sauber aus, wenn ich viele Prüfungen habe. Ich suche nach Alternativen.
'Ich weiß, dass ich alle Werte in Variablen speichern können und diejenigen, überprüfen subsequently' Sie bereits die Antwort wissen, ist es leider nicht sehr hübsch, wie du sagst. –
'return [checkSomething (1), checkSomething (2), checkSomething (3)];' ??? –
In ES6 können Sie 'return [checkSomething (1), checkSomething (2), checkSomething (3)]. All (a => a);'. – Xufox