Wenn Sie eine Funktion haben, die 4 Bedingungen überprüft (wir A
sagen, B
, C
und D
), und dass, wenn einer von ihnen true
ist die Funktion sollte zurückgeben false
.
Einzeiler Rückkehr für „wenn irgendetwas davon wahr ist return false“
Es funktioniert, wenn Sie es so schreiben:
function is() {
return (
!A && !B && !C && !D
)
}
jedoch in diesem Fall (korrigiert mich wenn ich falsch liege) - alle Bedingungen wird jedes Mal (während geprüft werden, und return (A || B || C ||D)
kann genug sein, dass A
zum Beispiel true
und Rück false
Sie können die Funktionalität der Funktion einfach umkehren zu stoppen ist, verwenden, aber was ist, wenn Sie es wollen, so bleiben.
dh was ich suche ist ein Einzeiler return
, die äquivalent ist:
if (a) return false;
if (b) return false;
if (c) return false;
if (d) return false;
return true;
EDIT: in den Antworten und Kommentare Wie erwähnt, ist es falsch anzunehmen, dass in Im ersten Beispiel werden alle Bedingungen jedes Mal überprüft. Sobald einer von ihnen zu false
auswertet (was bedeutet, dass wenigstens einer von A
, , C
, wahr ist, d.h. "nicht nicht wahr"), wird er angehalten und false
zurückgegeben.
'Rückkehr! (A || B || C || D)' wäre die am meisten zu kurze Kurzschlussversion. Nicht sicher, warum du das nicht willst. Du kannst deinen Kuchen nicht essen und auch nicht essen, d. H. Du kannst nicht zulassen, dass er "so bleibt" und auch etwas kurzschließen und auch ein One-Liner. – deceze
Ihr erster Code-Block funktioniert genau so, wie Sie sagen. – Pointy
@deceze warum nicht? Ist nicht ein &&! B auch ein Kurzliner? –