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