JavaScript/Objekte/Array/find

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

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])


Attribute
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.

Beispiel
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:

Beispiel
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