array.find() – Array-Element suchen / finden und Wert zurückgeben

array.find () gibt den Wert des ersten Elements zurück, das eine Bedingung erfüllt, bzw. undefined, wenn keines der Array-Elemente den Anforderungen des Tests entspricht. array.find() stoppt sofort, sobald ein Treffer gefunden wurde.

array.find Element suchen und finden

array.find() – das erste Element finden

array.find() ist eine eingebaute Funktion und gibt den Wert des ersten Elements zurück, das die angegebenen Bedingungen erfüllt, oder undefined, falls kein Element gefunden wurde.

Seit ES5 kann JavaScript mit indexOf und lastIndexOf Elemente in Arrays aufspüren. Diese Methoden geben allerdings nur den Index des ersten passenden Elements zurück. array.find() hingegen gibt Zugriff auf das gefundene Element.

const numbers = [1, 5, 18, 7, 4];

// callback-Funktion, 
// sucht das erste durch 3 teilbare Element
function bar (e, idx, arr) {
	// console.log (idx);
	// console.log (arr);
	return e % 3 == 0;
}

const f = numbers.find(bar);
console.log ("f", f) // f – 18

oder kurz per Arrow-Funktion

const f = numbers.find (e => e % 3 == 0) ;

Findet das erste Element, das durch 3 teilbar ist und gibt es in numbers zurück.

e
Aktuelles Element, das von der Funktion bearbeitet wird
idx – optional
Index des aktuellen Elements
arr - optional
Das Array, in dem gesucht wird
thisArg - optional
weist die Funktion an, dieses Argument als this in der Callback-Funktion zu nutzen.

Mit array.find() in JSON-Array of Objects

Mit array.find () ein Element in einem JSON-Array of Objects finden

const haustiere = [ 
	{ "name" : "Marsalla",   "spezies" : "🐈", "age": 8},
	{ "name" : "Theokrates", "spezies" : "🐕", "age": 4 },
	{ "name" : "Wallis",     "spezies" : "🐎", "age": 18 },
	{ "name" : "Nemo",       "spezies" : "🐑", "age": 12 }
];

const foo = haustiere.find(elem => elem.age > 8);
console.log ("foo", foo)

zeigt den ersten Treffer:

{ "name" : "Wallis", "spezies" : "🐎", "age": 18 }

array.find() vs array.filter()

array.find() wird eingesetzt, wenn genau ein Objekt gesucht wird (z.B. ein Benutzer mit einer bestimmter ID). array.filter() hingegen filtert mehrere Elemente heraus und gibt immer ein neues Array zurück, sogar ein leeres Array, wenn es keine Treffer gibt. array.filter() prüft alle Elemente, egal ob schon früh Treffer gefunden werden.

Merkmalfind()filter()
Rückgabeeinzelnes ElementArray
Kein Trefferundefined[]
Mehrere Treffernur der erstealle
Performanceschneller bei Einzelsuchelangsamer (läuft immer komplett)
Suchen auf mediaevent.de