ES2015 добавил новый метод findIndex () в Array.prototype, который позволяет найти первый элемент в массиве, удовлетворяющий предоставленной функции тестирования. Метод findIndex () в JavaScript выполняет функцию один раз для каждого элемента, присутствующего в массиве.
Массив JavaScript findIndex ()
Массив JavaScript findIndex () — это встроенная функция, которая возвращает индекс первого элемента в массиве, который удовлетворяет предоставленной функции обратного вызова; в противном случае возвращается -1, указывая, что ни один элемент не прошел проверку. Функция findIndex () принимает два аргумента: function и
Выполняется метод findIndex () функция один раз для каждого элемента, присутствующего в массиве: если она находит элемент массива , в котором функция возвращает истинное значение, метод findIndex () возвращает индекс этого элемента массива (и не проверяет оставшиеся значения).
Синтаксис
Синтаксис следующий.
array.findIndex (function ( currentValue, index, arr), thisValue)
Параметры
Функция — это обязательный аргумент. Он будет выполняться для каждого элемента в массиве.
currentValue является обязательным параметром. Это значение текущего элемента.
Индекс является необязательным параметр. Это индекс массива текущего элемента.
arr — необязательный параметр. Это текущий объект массива.
thisValue — необязательный параметр. Значение, передаваемое функции, которая будет использоваться в качестве значения « this ».
Пример
Теперь давайте рассмотрим простой пример.
//app.jslet age = [3 , 10, 18, 20]; console.log (age.findIndex (age => age> 10));
В приведенном выше примере мы определили массив и вызываем findIndex () для этого массива.
Передайте стрелочную функцию, которая проверяет, превышает ли значение элемента в массиве 10. Если найдено значение элемента> 10, то в журнал будет занесен индекс этого элемента. Запустите этот файл, набрав node app на терминале.
Итак, первый элемент, который больше 10, равен 18, а его индекс равен 2. Итак, 2 регистрируется на консоли.
findIndex () вернет индекс на основе записанной логики внутри данной функции. Основное различие между findIndex () и indexOf () заключается в том, что нам нужно предоставить элемент функции indexOf (), где, с другой стороны, метод findIndex () ожидает функцию, которая определила логику, по которой мы получаем индекс.
Javascript findIndex () vs find ()
Array.find () и Array.findIndex () — два новых метода в JavaScript, который упрощает поиск массивов, чем раньше, без написания громоздкого кода и циклов.
Давайте разберемся между ними на примере.
//app.jslet arr = [11 , 21, 19, 29, 18, 10, 46]; data = arr.find ((v) => {return v% 2 === 0;}); console.log (данные)
Вывод
node app18
Метод Array.find () вызывает (v) => {return v% 2 === 0;}
для каждого элемента в массиве, пока предикат не вернет истину. В этом случае элемент возвращается. Если элемент не найден, возвращается undefined .
//app.jslet arr = [11, 21, 19, 29, 17, 23, 31] ; data = arr.find ((v) => {return v% 2 === 0;}); console.log (данные)
Вывод
node appundefined
Метод findIndex () очень похож на метод find () , но возвращает индекс элемент, а не сам элемент.
Он принимает предикат и возвращает индекс первого элемента в массиве, который удовлетворяет этому предикату. Если элемент не существует, возвращается -1 .
См. Следующий код.
//app.jslet arr = [ 11, 21, 19, 29, 17, 23, 31]; index = arr.findIndex ((v) => {return v% 2 === 0;}); console.log (index)
Вывод
node app-1
Вы можете видеть, что индекс равен -1 потому что в массиве нет удовлетворительного элемента. В массиве нет четного элемента. Вот почему функция возвращает индекс -1.
Теперь давайте напишем пример, в котором условие удовлетворяется элементом.
//app.jslet arr = [11, 21, 19, 20, 17, 24, 31]; index = arr.findIndex ((v) => {return v% 2 === 0;}); console.log (index)
В приведенном выше коде мы определили массив с четными элементами. В массиве есть два четных элемента с индексами 3 и 5. Теперь давайте запустим программу и посмотрим на результат.
node app3
Это означает, что это немедленно возвращает индекс, если он нашел индекс. Индекс оставшегося четного элемента в этом случае не будет возвращен.
Заключение
findIndex () не выполняет функция для элементов массива без значений. FindIndex () не изменяет исходный массив.
Метод findIndex () выполняет функцию обратного вызова один раз для каждого индекса массива 0..length-1 (включительно) в массиве, пока не найдет тот, где предоставленная функция возвращает значение true (значение, которое приводит к true ).
Наконец, Учебное пособие по функции Javascript Array.findIndex () окончено.
См. также
Массив Javascript indexOf ()
Массив Javascript lastIndexOf ()
Javascript array pop ()
Javascript array includes ()
Javascript array push ()