Există diferite metode în JavaScript pe care le puteți utiliza pentru a căuta un element dintr-o matrice. Metoda pe care o alegeți depinde de cazul de utilizare specific.

De exemplu, doriți să obțineți toate articolele dintr-o matrice care îndeplinesc o anumită condiție? Doriți să verificați dacă vreun articol îndeplinește condiția? Doriți să verificați dacă o anumită valoare este în matrice? Sau doriți să găsiți indexul valorii în matrice?

Pentru toate aceste cazuri de utilizare, metodele Array.prototype JavaScript le-ați acoperit. În acest articol, vom discuta patru metode pe care le putem folosi pentru a căuta un articol dintr-o matrice. Aceste metode sunt:

  1. Filtru
  2. Găsi
  3. Include
  4. Index de

Să discutăm fiecare dintre ele.

Array.filter ()

Putem folosi metoda Array.filter () pentru a găsi elemente dintr-o matrice care îndeplinesc o anumită condiție. De exemplu, dacă dorim să obținem toate articolele dintr-o serie de numere mai mari de 10, putem face acest lucru:

const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.filter(element => element > 10);

console.log(greaterThanTen) //[11, 20]

Sintaxa pentru utilizarea metodei array.filter () este următoarea:

let newArray = array.filter(callback);

Unde

  • newArray este noua matrice returnată
  • array este matricea pe care se numește metoda filtrului
  • callback este funcția de apel invers care se aplică fiecărui element al matricei

Dacă niciun element din matrice nu îndeplinește condiția, se returnează o matrice goală. Puteți citi mai multe despre această metodă aici.

Există momente în care nu avem nevoie de toate elementele care îndeplinesc o anumită condiție. Avem nevoie doar de un element care să se potrivească condiției. În acest caz, aveți nevoie de metoda find ().

Array.find ()

Folosim metoda Array.find () pentru a găsi primul element care îndeplinește o anumită condiție. La fel ca metoda de filtrare, ia un callback ca argument și returnează primul element care îndeplinește condiția de callback.

Să folosim metoda find pe tabloul din exemplul nostru de mai sus.

ad-banner
const array = [10, 11, 3, 20, 5];

const greaterThanTen = array.find(element => element > 10);

console.log(greaterThanTen)//11

Sintaxa pentru array.find () este

let element = array.find(callback);

Callback-ul este funcția care se execută pe fiecare valoare din matrice și ia trei argumente:

  • element – elementul pe care se repetă (obligatoriu)
  • index – indexul / poziția elementului curent (opțional)
  • array – matricea care find a fost chemat (opțional)

Rețineți, totuși, că dacă niciun element din matrice nu îndeplinește condiția, acesta revine undefined.

Dar dacă doriți să verificați dacă un anumit element se află într-o matrice? Cum faci acest lucru?

Array.includes ()

Metoda include () determină dacă o matrice include o anumită valoare și returnează adevărat sau fals, după caz.

Deci, în exemplul de mai sus, dacă vrem să verificăm dacă 20 este unul dintre elementele din matrice, putem face acest lucru:

const array = [10, 11, 3, 20, 5];

const includesTwenty = array.includes(20);

console.log(includesTwenty)//true

Veți observa o diferență între această metodă și alte metode pe care le-am luat în considerare. Această metodă acceptă o valoare mai degrabă decât un apel invers ca argument. Iată sintaxa pentru metoda include:

const includesValue = array.includes(valueToFind, fromIndex)

Unde

  • valueToFind este valoarea pe care o căutați în matrice (obligatoriu) și
  • fromIndex este indexul sau poziția din matrice din care doriți să începeți să căutați elementul (opțional)

Pentru a obține conceptul de index, să vizităm din nou exemplul nostru. Dacă vrem să verificăm dacă matricea conține 10 în alte poziții în afară de primul element, putem face acest lucru:

const array = [10, 11, 3, 20, 5];

const includesTenTwice = array.includes(10, 1);

console.log(includesTenTwice)//false

Array.indexOf ()

Metoda indexOf () returnează primul index la care un anumit element poate fi găsit într-o matrice. Returnează -1 dacă elementul nu există în matrice.

Să ne întoarcem la exemplul nostru. Să găsim indicele 3 în matrice.

const array = [10, 11, 3, 20, 5];

const indexOfThree = array.indexOf(3);

console.log(indexOfThree)//2

Sintaxa sa este similară cu cea a includes metodă.

const indexOfElement = array.indexOf(element, fromIndex)

Unde

  • element este elementul pe care îl căutați în matrice (obligatoriu) și
  • fromIndex este indexul sau poziția din matrice din care doriți să începeți să căutați elementul (opțional)

Este important să rețineți că atât includes și indexOf metodele folosesc egalitate strictă (‘===’) pentru a căuta în matrice. Dacă valorile sunt de diferite tipuri (de exemplu „4” și 4), ele vor reveni false și -1 respectiv.

rezumat

Cu aceste metode de matrice, nu este nevoie să utilizați o buclă for pentru a căuta o matrice. În funcție de ceea ce aveți nevoie, puteți decide care dintre metode este cea mai potrivită pentru cazul dvs. de utilizare.

Iată un rezumat al momentului în care se folosește fiecare metodă:

  • Utilizare filter dacă doriți să găsiți toate articolele dintr-o matrice care îndeplinesc o anumită condiție.
  • Utilizare find dacă doriți să verificați dacă cel puțin un articol îndeplinește o anumită condiție.
  • Utilizare includes dacă doriți să verificați dacă un tablou conține o anumită valoare.
  • Utilizare indexOf dacă doriți să găsiți indexul unui anumit element dintr-o matrice.

Doriți să primiți o notificare când public un articol nou? Click aici.