Tablice są istotnym elementem w języku programowania JavaScript, umożliwiając przechowywanie i manipulację danymi. W tym artykule przedstawię kilka sposobów na szukanie elementów lub ich indeksów w tablicy.
Wyszukiwanie elementów w tablicy
Funkcja find
Funkcja find zwraca pierwszy element, który spełnia warunek. Jeśli nie znajdzie żadnego zwraca undefined. Jest szczególnie przydatna, gdy mamy do czynienia z tablicą obiektów i chcemy znależć obiekt o określonych właściwościach.
const fruits = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'orange' },
]
const orange = fruits.find((fruit) => fruit.name === 'orange') // Zwraca { name: 'orange', color: 'orange' }
Funkcja filter
Jeśli chcemy znaleźć wszystkie elementy, które spełniają warunek, możemy użyć funkcji filter.
const fruits = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'strawberry', color: 'red' },
]
const redFruits = fruits.filter((fruit) => fruit.color === 'red') // Zwraca [{ name: 'apple', color: 'red' }, { name: 'strawberry', color: 'red' }]
Wyszukiwanie indeksów elementów w tablicy
Funkcja findIndex
Jeśli chcemy znaleźć indeks pierwszego elementu, który spełnia warunek, możemy użyć funkcji findIndex.
const fruits = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'orange' },
]
const orangeIndex = fruits.findIndex((fruit) => fruit.name === 'orange') // Zwraca 2
Funkcja map
Funkcja map zasadniczo nie służy do wyszukiwania elementów. Jednak, jeśli chcemy znaleźć indeksy wszystkich
elementów, które spełniają warunek, możemy jej użyć w połączeniu z funkcją filter.
const fruits = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'strawberry', color: 'red' },
]
const redFruits = fruits
.map((fruit, index) => (fruit.color === 'red' ? index : null))
.filter((index) => index !== null) // Zwraca [0, 2]
Funkcja indexOf
Funkcja indexOf zwraca indeks pierwszego elementu, który spełnia warunek. Jeśli nie znajdzie żadnego zwraca -1.
Możemy jej użyć, jeśli szukamy pośród elementów o typie prostym, np. string lub number.
const fruits = ['apple', 'banana', 'orange']
const orangeIndex = fruits.indexOf('orange') // Zwraca 2
Sprawdzenie czy element istnieje w tablicy
Funkcja includes
Funkcja includes zwraca wartość logiczną true jeśli element istnieje w tablicy, lub false jeśli nie istnieje.
const fruits = ['apple', 'banana', 'orange']
const hasOrange = fruits.includes('orange') // Zwraca true
Funkcja some
Funkcja some zwraca wartość logiczną true jeśli przynajmniej jeden element spełnia warunek, lub false jeśli
żaden nie spełnia. Jest szczególnie przydatna, jeśli szukamy po tablicy obiektów.
const fruits = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'orange' },
]
const hasOrange = fruits.some((fruit) => fruit.name === 'orange') // Zwraca true