TypedArray.prototype.findLast()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с августа 2022 года.
Метод findLast() экземпляров TypedArray перебирает типизированный массив в обратном порядке и возвращает значение первого элемента, удовлетворяющего предоставленной тестовой функции. Если ни один элемент не удовлетворяет тестовой функции, возвращается undefined. Этот метод имеет тот же алгоритм, что и Array.prototype.findLast().
Попробуйте
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
Синтаксис
findLast(callbackFn) findLast(callbackFn, thisArg)
Параметры
-
callbackFn - Функция для выполнения для каждого элемента в типизированном массиве. Она должна возвращать truthy значение, чтобы указать на найденный совпадающий элемент, и falsy значение в противном случае. Функция вызывается со следующими аргументами:
-
element - Текущий элемент, обрабатываемый в типизированном массиве.
-
index - Индекс текущего элемента, обрабатываемого в типизированном массиве.
-
array - Типизированный массив, для которого был вызван
findLast().
-
-
thisArgНеобязательный - Значение, используемое в качестве
thisпри выполненииcallbackFn. См. итеративные методы.
Возвращаемое значение
Последний (с наибольшим индексом) элемент в типизированном массиве, удовлетворяющий предоставленной тестовой функции; undefined, если совпадающий элемент не найден.
Описание
См. Array.prototype.findLast() для получения дополнительной информации. Этот метод не является общим и может быть вызван только для экземпляров типизированных массивов.
Примеры
Найти последнее простое число в типизированном массиве
Следующий пример возвращает последний элемент в типизированном массиве, который является простым числом, или undefined, если простого числа нет.
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
Примечание: реализация isPrime() предназначена только для демонстрации. Для реального приложения вы захотите использовать сильно мемоизированный алгоритм, такой как решето Эратосфена, чтобы избежать повторных вычислений.
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
findLast |
97 |
97 |
104 |
83 |
15.4 |
97 |
104 |
68 |
15.4 |
18.0 |
97 |
15.4 |
1.0.0 |
1.16 |
Нет |
См. также
- Polyfill для
TypedArray.prototype.findLastвcore-js - Руководство по типизированным массивам JavaScript
TypedArrayTypedArray.prototype.find()TypedArray.prototype.findIndex()TypedArray.prototype.findLastIndex()TypedArray.prototype.includes()TypedArray.prototype.filter()TypedArray.prototype.every()TypedArray.prototype.some()Array.prototype.findLast()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findLast