JavaScriptTablice

Array.prototype.findIndex()

Zwraca indeks pierwszego elementu spełniającego warunek albo -1.

Zwraca
Indeks pierwszego pasującego elementu albo -1.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
const lessons = ['Wstęp', 'Znaczniki', 'Atrybuty', 'Formularze']

console.log(lessons.findIndex((lesson) => lesson.startsWith('A')))
console.log(lessons.findIndex((lesson) => lesson === 'Tabele'))
Konsola
2
-1

Definicja i zastosowanie

#

Metoda findIndex() działa jak find(), ale zamiast elementu zwraca jego indeks. Gdy żaden element nie pasuje, wynikiem jest -1.

Przydaje się, gdy chcesz zmienić albo usunąć znaleziony element w miejscu, na przykład przez splice(), albo zastąpić go nowym obiektem.

W przeciwieństwie do indexOf() przyjmuje funkcję, więc znajdzie obiekty po dowolnym polu, a nie tylko wartości porównywane przez ===.

Składnia

#
Składnia
array.findIndex(callbackFn)
array.findIndex(callbackFn, thisArg)

Parametry

#
  • callbackFn

    function (element, index, array)

    Funkcja testująca.
  • thisArg

    opcjonalny

    Wartość this wewnątrz funkcji.

Więcej przykładów

#
Aktualizacja elementu w tablicy
JavaScript
const todos = [
  { id: 1, done: false },
  { id: 2, done: false }
]

const index = todos.findIndex((todo) => todo.id === 2)
if (index !== -1) todos[index] = { ...todos[index], done: true }

console.log(todos)
Konsola
[{ id: 1, done: false }, { id: 2, done: true }]

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Zawsze sprawdzaj wynik -1 przed użyciem indeksu. todos[-1] zwróci undefined, a przypisanie utworzy dziwną właściwość.
  • Do prostych wartości wystarczy indexOf().

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.