Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Эта страница была переведена с английского языка силами сообщества. Вы тоже можете внести свой вклад, присоединившись к русскоязычному сообществу MDN Web Docs.

Array.prototype.findIndex()

BaselineWidely available

Сводка

МетодfindIndex() возвращаетиндекс в массиве, если элемент удовлетворяет условию проверяющей функции. В противном случае возвращается -1.

Также смотрите методfind(), который возвращаетзначение найденного в массиве элемента вместо его индекса.

Синтаксис

arr.findIndex(callback[, thisArg])

Параметры

callback

Функция, вызывающаяся для каждого значения в массиве, принимает три аргумента:

element

Текущий обрабатываемый элемент в массиве.

index

Индекс текущего обрабатываемого элемента в массиве.

array

Массив, по которому осуществляется проход.

thisArg

Необязательный параметр. Значение, используемое в качествеthis при выполнении функцииcallback.

Описание

МетодfindIndex вызывает переданную функциюcallback один раз для каждого элемента, присутствующего в массиве, до тех пор, пока она не вернётtrue. Если такой элемент найден, методfindIndex немедленно вернёт индекс этого элемента. В противном случае, методfindIndex вернёт -1. Функцияcallback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались.

Функцияcallback вызывается с тремя аргументами: значением элемента, индексом элемента и массивом, по которому осуществляется проход.

Если в методfindIndex был передан параметрthisArg, при вызовеcallback он будет использоваться в качестве значенияthis. В противном случае в качестве значенияthis будет использоваться значениеundefined.

МетодfindIndex не изменяет массив, для которого он был вызван.

Диапазон элементов, обрабатываемых методомfindIndex, устанавливается до первого вызова функцииcallback. Элементы, добавленные в массив после начала выполнения методаfindIndex, не будут посещены функциейcallback. Если существующие, непосещение элементы массива изменяются функциейcallback, их значения, переданные в функцию, будут значениями на тот момент времени, когда методfindIndex посетит их; удалённые элементы посещены не будут.

Примеры

Пример: поиск индекса простого числа в массиве

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

js
function isPrime(element, index, array) {  var start = 2;  while (start <= Math.sqrt(element)) {    if (element % start++ < 1) {      return false;    }  }  return element > 1;}console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, не найденоconsole.log([4, 6, 7, 12].findIndex(isPrime)); // 2

Полифил

Этот метод был добавлен в спецификации ECMAScript 6 и пока может быть недоступен во всех реализациях JavaScript. Однако, вы можете использовать следующий кусочек кода в качестве полифила:

js
if (!Array.prototype.findIndex) {  Array.prototype.findIndex = function (predicate) {    if (this == null) {      throw new TypeError(        "Array.prototype.findIndex called on null or undefined",      );    }    if (typeof predicate !== "function") {      throw new TypeError("predicate must be a function");    }    var list = Object(this);    var length = list.length >>> 0;    var thisArg = arguments[1];    var value;    for (var i = 0; i < length; i++) {      value = list[i];      if (predicate.call(thisArg, value, i, list)) {        return i;      }    }    return -1;  };}

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

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.findindex

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

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

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp