Einfache Arrays:
const gewichte = [77,95,89,101];
const ergebnis = gewichte.find(gewicht => gewicht > 80); 
console.log(ergebnis); // => 95Array 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 Wertundefinedzurü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);