Spec-Zone.ru › JavaScript

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() предназначена только для демонстрации. Для реального приложения вы захотите использовать сильно мемоизированный алгоритм, такой как решето Эратосфена, чтобы избежать повторных вычислений.

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-%typedarray%.prototype.findlast

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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
  • TypedArray
  • TypedArray.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API