Einfache Arrays:
const gewichte = [77,95,89,101];
const ergebnis = gewichte.find(gewicht => gewicht > 80);
console.log(ergebnis); // => 95
Array aus Objekten:
const personen = [
{ gewicht: 77, groesse: 175 },
{ gewicht: 95, groesse: 185 },
{ gewicht: 89, groesse: 171 },
{ gewicht: 101, groesse: 190 }
];
const ergebnis = personen.find(
person => person.gewicht > 85 && person.groesse >= 190
);
console.log(ergebnis); // { gewicht: 101, groesse: 190 }
Verhalten
- gibt das erste Element aus einem Array zurück welches die Testbedingung erfüllt
- die
find()
Methode verändert den untersuchten Array nicht - es gibt zwei Parameter: das Element und optional der Index des Elementes (z.B.
personen.find((person, i) => {...})
)
Unterschied zu Array.filter
- beide Methoden sind ähnlich
filter()
gibt einen neuen Array aus allen Elementen zurück, die die Bedingung erfüllen,find()
gibt nur das erste Element zurück welches die Bedingung erfüllt- Wird kein Element gefunden gibt
find()
den Wertundefined
zurück, beifilter()
erhält man einen leeren Array
Tipps
- Testfunktion auslagern, wenn sie an mehreren Stellen benötigt wird:
const istGrossUndKraeftig = person => person.gewicht > 85 && person.groesse >= 190; const ergebnis = personen.find(istGrossUndKraeftig);