Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. Array
  6. Array.prototype.findIndex()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Array.prototype.findIndex()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2015 г.⁩.

Сводка

Метод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