TypedArray.prototype.findLast()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit August 2022 browserübergreifend verfügbar.
Die findLast()-Methode von TypedArray-Instanzen durchläuft das typisierte Array in umgekehrter Reihenfolge und gibt den Wert des ersten Elements zurück, das die bereitgestellte Testfunktion erfüllt. Wenn kein Element die Testfunktion erfüllt, wird undefined zurückgegeben. Diese Methode verwendet denselben Algorithmus wie Array.prototype.findLast().
Probieren Sie es aus
function isNegative(element /*, index, array */) {
return element < 0;
}
const int8 = new Int8Array([10, 0, -10, 20, -30, 40, 50]);
console.log(int8.findLast(isNegative));
// Expected output: -30
Syntax
findLast(callbackFn)
findLast(callbackFn, thisArg)
Parameter
callbackFn-
Eine Funktion, die für jedes Element im typisierten Array ausgeführt wird. Sie sollte einen truthy Wert zurückgeben, um anzuzeigen, dass ein passendes Element gefunden wurde, und einen falsy Wert, wenn nicht. Die Funktion wird mit den folgenden Argumenten aufgerufen:
thisArgOptional-
Ein Wert, der als
thisverwendet wird, wenncallbackFnausgeführt wird. Siehe iterative Methoden.
Rückgabewert
Das letzte (höchstindexierte) Element im typisierten Array, das die bereitgestellte Testfunktion erfüllt; undefined, wenn kein passendes Element gefunden wird.
Beschreibung
Siehe Array.prototype.findLast() für mehr Details. Diese Methode ist nicht generisch und kann nur auf typisierten Array-Instanzen aufgerufen werden.
Beispiele
>Das letzte Primzahl-Element in einem typisierten Array finden
Das folgende Beispiel gibt das letzte Element im typisierten Array zurück, das eine Primzahl ist, oder undefined, wenn keine Primzahl vorhanden ist.
function isPrime(n) {
if (n < 2) {
return false;
}
if (n % 2 === 0) {
return n === 2;
}
for (let factor = 3; factor * factor <= n; factor += 2) {
if (n % factor === 0) {
return false;
}
}
return true;
}
let uint8 = new Uint8Array([4, 6, 8, 12]);
console.log(uint8.findLast(isPrime)); // undefined (no primes in array)
uint8 = new Uint8Array([4, 5, 7, 8, 9, 11, 12]);
console.log(uint8.findLast(isPrime)); // 11
Hinweis:
Die Implementierung von isPrime() dient nur zu Demonstrationszwecken. Für eine reale Anwendung sollten Sie einen stark memoisierten Algorithmus wie das Sieb des Eratosthenes verwenden, um wiederholte Berechnungen zu vermeiden.
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-%typedarray%.prototype.findlast> |
Browser-Kompatibilität
Siehe auch
- Polyfill von
TypedArray.prototype.findLastincore-js - Leitfaden zu JavaScript typisierte Arrays
TypedArrayTypedArray.prototype.find()TypedArray.prototype.findIndex()TypedArray.prototype.findLastIndex()TypedArray.prototype.includes()TypedArray.prototype.filter()TypedArray.prototype.every()TypedArray.prototype.some()Array.prototype.findLast()