Diese Übersetzung ist in Arbeit.
This is an experimental technology, part of the ECMAScript 6 (Harmony) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.
Summary
Die find() Methode gibt einen Wert des Arrays, wenn ein Element des Arrays die mitgelieferte Testfunktion erfüllt. Ansonsten wird undefined zurückegeben.
Siehe auch die findIndex() Methode, die den Index eines gefundenen Elements anstatt dessen Wert zurück gibt.
Syntax
arr.find(callback[, thisArg])
Parameters
callback- Funktion, die für jeden Wert des Arrays ausgeführt wird. Sie nimmt drei Argumente:
element- Das aktuelle verarbeitete Element in dem Array.
index- Der Index des aktuell verarbeiteten Elements in dem Array.
array- Das Array, mit dem
findaufgerufen wurde.
thisArg- Optional. Object to use as
thiswhen executingcallback.
Beschreibung
Die find Methode führt für jedes Element des Arrays die callback Funktion aus, bis ein Element gefunden wurde, für das die callback Funktion true zurückliefert.
Wenn ein solches Element gefunden wurde, gibt find den Wert dieses Elements sofort zurück. Ansonsten liefert find undefined zurück. Die callback Funktion wird nur für Indizes des Arrays aufgerufen, die einen Wert besitzen. Sie wird nicht für gelöschte Indizes oder für Indizes ohne zugewiesenen Wert aufgerufen.
Die callback Funktion nimmt drei Argumente: Den Wert des Elements, den Index des Elements und das Array, das durchlaufen wird.
Wenn thisArg angegeben in find angegeben ist, wird es als this für jeden Aufruf der callback Funktion verwendet. Wenn es nicht angegeben wurde, wird undefined verwendet.
find wandelt das ursprüngliche Array nicht ab.
Die Anzahl der zu durchlaufenden Elemente in der find Methode eird vor dem ersten Aufruf der callback Funktion gesetzt. Elemente, die nach dem find Aufruf hinzugefügt wurden, werden nicht von der callback Funktion behandelt.
If an existing, unvisited element of the array is changed by callback, its value passed to the visiting callback will be the value at the time that find visits that element's index; elements that are deleted are not visited.
Beispiele
Beispiel: Finden einer Primzahl in einem Array
In folgendem Beispiel wird eine Element des Array gefunden, wenn es eine Primzahl ist. Wenn keine Primzahl vorhanden ist liefert isPrime undefined zurück.
function isPrime(element, index, array) {
var start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}
console.log([4, 6, 8, 12].find(isPrime)); // undefined, not found
console.log([4, 5, 8, 12].find(isPrime)); // 5
Polyfill
This method has been added to the ECMAScript 6 specification and may not be available in all JavaScript implementations yet. However, you can polyfill Array.prototype.find with the following snippet:
if (!Array.prototype.find) {
Array.prototype.find = function(predicate) {
if (this == null) {
throw new TypeError('Array.prototype.find called on null or undefined');
}
if (typeof predicate !== 'function') {
throw new TypeError('predicate must be a function');
}
var list = Object(this);
var length = list.length >>> 0;
var thisArg = arguments[1];
var value;
for (var i = 0; i < length; i++) {
value = list[i];
if (predicate.call(thisArg, value, i, list)) {
return value;
}
}
return undefined;
};
}
Specifications
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 6 (ECMA-262) Die Definition von 'Array.prototype.find' in dieser Spezifikation. |
Anwärter Empfehlung | Initial definition. |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | Nicht unterstützt | 25.0 (25.0) | Nicht unterstützt | Nicht unterstützt | 7.1 |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | Nicht unterstützt | Nicht unterstützt | 25.0 (25.0) | Nicht unterstützt | Nicht unterstützt | iOS 8 |