JavaScript метод findIndex()ECMAScript 2015

JavaScript Array

Определение и применение

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


Обращаю Ваше внимание, что функция обратного вызова, переданная в качестве параметра метода findIndex()ECMAScript 2015 не будет вызвана для пропущенных элементов массива. Метод findIndex()ECMAScript 2015 не изменяет массив для которого он был вызван.


Диапазон элементов, обрабатываемых с помощью метода findIndex()ECMAScript 2015 устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.

Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод findIndex()ECMAScript 2015 посещает их.

Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
findIndex()ECMAScript 201545.025.032.07.1Нет12.0

JavaScript синтаксис:

// только с callback функцией
array.findIndex( function( currentValue, index, arr ) ); 

// с использованием объекта, на который может ссылаться ключевое слово this
array.findIndex( function( currentValue, index, arr ), thisValue ); 

Версия JavaScript

ECMAScript 2015 (6th Edition)

Значения параметров

ПараметрОписание
function Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве, пока не вернет логическое значение true, или достигнет конца массива, возвращая при этом -1. Функция принимает следующие параметры:
  • currentValue - значение текущего элемента
  • index - индекс массива текущего элемента.
  • arr - массив, к которому принадлежит текущий элемент (по которому происходит проход).

Если в качестве параметра метода передается что-то, что не является объектом функции, то будет вызвано исключение TypeError. Обязательный параметр.

thisValueОбъект, на который может ссылаться ключевое слово this внутри функции обратного вызова. Если параметр thisValue не используется, то в качестве значения this будет использоваться undefined (в конечном счете this будет зависеть от обычных правил контекста выполнения функции). Необязательный параметр.

Пример использования

В следующем примере с использованием JavaScript метода find() мы проверим содержится ли в массиве число меньше ноля:

var array = [1, -2, 3, -4]; // инициализируем переменную, содержащую массив числовых значений 

array.findIndex( // находим индекс необходимого элемента в массиве
  function checkNumber( currentValue ) {
    return currentValue == 3; // проверяем является ли текущее значение равное трем
  } // если условие выполняется, то возвращаем индекс этого элемента, если достигнут конец массива, то -1
);// возвращаемое значение 2

// аналогично с использованием стрелочной функции
array.findIndex( currentValue => currentValue == 3 ); // возвращаемое значение  2
array.findIndex( currentValue => currentValue == -3 ); // возвращаемое значение -1

В следующем примере мы рассмотрим использование второго аргумента метода findIndex(), который указывает на объект, на который мы можем ссылаться с использованием ключевого слова this внутри функции обратного вызова:

var numbers = [1, -2, 3, -4]; // инициализируем переменную, содержащую массив числовых значений 
var myObject = { // инициализируем переменную, содержащую объект 
  checkNumber: function( currentValue ) { // метод объекта, который принимает значение  
    return currentValue == 3; // проверяем является ли текущее значение равное трем 
  }
};

numbers.findIndex( // находим индекс необходимого элемента в массиве
  function( currentValue ) {
    return this.checkNumber( currentValue ); //  возвращаемое значение метода checkNumber объекта myObject
  }, myObject // объект, на который мы ссылаемся с использованием ключевого слова this 
); // если условие выполняется, то возвращаем индекс этого элемента, если достигнут конец массива, то -1
// возвращаемое значение 2
JavaScript Array