Spec-Zone.ru › JavaScript

TypedArray.prototype.findIndex()

Базовый уровень Широко доступно

Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.

Метод findIndex() экземпляров TypedArray возвращает индекс первого элемента в типизированном массиве, который удовлетворяет предоставленной тестирующей функции. Если ни один элемент не удовлетворяет тестирующей функции, возвращается -1. Этот метод использует тот же алгоритм, что и Array.prototype.findIndex().

Попробовать

function isNegative(element, index, array) {
  return element < 0;
}

const int8 = new Int8Array([10, -20, 30, -40, 50]);

console.log(int8.findIndex(isNegative));
// Expected output: 1

Синтаксис

findIndex(callbackFn)
findIndex(callbackFn, thisArg)

Параметры

callbackFn
Функция, которая будет выполняться для каждого элемента в типизированном массиве. Она должна возвращать истинное значение, чтобы указать, что совпадающий элемент найден, и ложное значение в противном случае. Функция вызывается со следующими аргументами:
element
Текущий обрабатываемый элемент в типизированном массиве.
index
Индекс текущего обрабатываемого элемента в типизированном массиве.
array
Типизированный массив, для которого был вызван findIndex().
thisArg Необязательно
Значение, которое будет использоваться в качестве this при выполнении callbackFn. См. итеративные методы.

Возвращаемое значение

Индекс первого элемента в типизированном массиве, который проходит проверку. В противном случае, -1.

Описание

См. Array.prototype.findIndex() для более подробной информации. Этот метод не является обобщенным (generic) и может вызываться только на экземплярах типизированных массивов.

Примеры

Нахождение индекса первого простого числа в типизированном массиве

Следующий пример возвращает индекс первого элемента в типизированном массиве, который является простым числом, или -1, если простых чисел нет.

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;
}

const uint8 = new Uint8Array([4, 6, 8, 12]);
const uint16 = new Uint16Array([4, 6, 7, 12]);

console.log(uint8.findIndex(isPrime)); // -1, not found
console.log(uint16.findIndex(isPrime)); // 2

Примечание: Реализация isPrime() предназначена только для демонстрации. Для реального приложения вам следует использовать сильно мемоизированный алгоритм, такой как Решето Эратосфена, чтобы избежать повторных вычислений.

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-%typedarray%.prototype.findindex

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

Десктоп Мобильные Сервер
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
findIndex
45
12
37
32
10
45
37
32
10
5.0
45
10
1.0.0
1.0
4.0.0

Смотрите также

  • Полифил TypedArray.prototype.findIndex в core-js
  • Руководство по типизированным массивам JavaScript
  • TypedArray
  • TypedArray.prototype.find()
  • TypedArray.prototype.findLast()
  • TypedArray.prototype.findLastIndex()
  • TypedArray.prototype.indexOf()
  • TypedArray.prototype.lastIndexOf()
  • Array.prototype.findIndex()

© 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/findIndex

Spec-Zone.ru

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