446 Kapitel 10
Eine Funktion an eine Funktion übergeben
Über die Passagiere iterieren
function processPassengers(passengers, testFunction) {
for (var i = 0; i < passengers.length; i++) {
if (testFunction(passengers[i])) {
return false;
}
}
return true;
}
Die Funktion processPassengers
hat zwei Parameter. Der erste
ist ein Array mit Passagieren.
Wir iterieren über die
einzelnen Passagiere.
Ist das Ergebnis der Funktion true, geben wir false
zurück. Anders gesagt: Hat einer der Passagiere den
Test nicht bestanden (z. B. weil er nicht bezahlt hat
oder auf der No-Fly-Liste steht), darf das Flugzeug
nicht starten.
Falls wir dagegen bis hier gekommen
sind, haben alle Passagiere den Test
bestanden, und wir geben true zurück.
Wir brauchen eine Funktion, die einen Passagier übernimmt, und zusätzlich
eine weitere Funktion, die weiß, wie ein einzelner Passagier auf eine be-
stimmte Bedingung überprüft werden kann, z. B. ob der Passagier auf der
No-Fly-Liste steht. Das machen wir so:
Der zweite Parameter ist
eine Funktion, die weiß, wie
bestimmte Bedingungen für den
Passagier überprüft werden.
Und dann rufen wir die Funktion
für jeden Passagier auf.
Jetzt brauchen wir noch ein paar Funktionen, um die Passagiere zu überprüfen
(die Sie glücklicherweise in der letzten »Spitzen Sie Ihren Bleistift«-Übung schon
geschrieben haben). Hier sind sie:
function checkNoFlyList(passenger) {
return (passenger.name === "Dr. Evel");
}
function checkNotPaid(passenger) {
return (!passenger.paid);
}
Diese Funktion testet, ob sich ein Passagier
auf der No-Fly-Liste befindet. Die Liste ist
einfach: Alle dürfen fliegen bis auf Dr. Evel.
Ist der Passagier Dr. Evel, geben wir true
zurück, ansonsten false (das heißt, der andere
Passagier ist nicht auf der No-Fly-Liste).
Und hier ist die Funktion, die überprüft, ob ein
Passagier bezahlt hat. Hierfür müssen wir nur sehen,
welchen Wert die Eigenschaft paid des passenger-
Objekts hat. Hat der Passagier nicht bezahlt, geben
wir true zurück.
Achtung: Dies ist ein einzelner Passagier (ein Objekt) und nicht
das Array mit den Passagieren (ein Array mit Objekten).

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.