JavaScript/Objekte/Array/find
Die Methode find() gibt das erste gefundene Element eines Arrays zurück. Voraussetzung ist, dass das Element die Bedingungen der mitgelieferten Testfunktion erfüllt. Vergleichbar dazu gibt die Methode findIndex den Index des gefundenen Elements zurück. Andererseits kann man mit der Methode filter() alle Elemente ermitteln, die die Bedingung erfüllen.
Syntax
arr.find(callback[, thisArg])
Writable | true |
Enumerable | false |
Configurable | true |
Parameter
-
callback
: Funktion, die für jeden Wert des Arrays ausgeführt wird. Sie bekommt ihrerseits drei Parameter:-
element
: das aktuelle verarbeitete Element -
index
: Index des Elements aus dem Array, über welches gerade iteriert wird -
array
: Referenz auf das gesamte (ursprüngliche) Array
-
-
thisArg
: (optional) Kontext-Parameter, der als this genutzt wird bei der Ausführung der callback-Funktion.
Rückgabewert
- der erste Wert aus dem Array, welcher den Test besteht, andernfalls
undefined
Beschreibung
Mit der Callbackfunktion kann geprüft werden, welches Element das zu findende ist. Ihr Rückgabewert wird entweder als true
oder false
interpretiert.
var a = ["null", "eins", "zwei", "drei"];
var test = function (element) {
return element == "zwei";
};
console.log(a.find(test)); // "zwei"
Der Sinn hinter find
und findIndex
ist nicht das simple Finden eines bereits bekannten Wertes innerhalb eines Arrays (dafür gibt es indexOf
und lastIndexOf
), sondern das Herausfinden eines passenden Wertes anhand einer Bedingung:
var a = ["null", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn"];
function min5buchstaben (element) {
return element.length >= 5;
};
function min6buchstaben (element) {
return element.length >= 6;
};
console.log(a.find(min5buchstaben)); // "sechs"
console.log(a.find(min6buchstaben)); // "sieben"
Spezifikation
find() | ECMAScript 2015 | 2017 Draft |