Neli erinevat viisi massiivi otsimiseks JavaScripti abil

JavaScriptis on erinevaid meetodeid, mida saate kasutada massiivi üksuse otsimiseks. Millise meetodi valite, sõltub teie konkreetsest kasutusjuhtumist.

Näiteks, kas soovite massiivi kõik üksused, mis vastavad konkreetsele tingimusele? Kas soovite kontrollida, kas mõni toode vastab tingimusele? Kas soovite kontrollida, kas massiivis on konkreetne väärtus? Või soovite massiivist leida väärtuse indeksi?

Kõigi nende kasutusjuhtumite puhul olete JavaScripti Array.prototype meetodid hõlmanud. Selles artiklis käsitleme nelja meetodit, mida saame kasutada massiivi üksuse otsimiseks. Need meetodid on järgmised:

  1. Filtreeri
  2. Leidke
  3. Sisaldab
  4. Indeks

Arutleme neist igaühe üle.

Array.filter ()

Massiivist teatud tingimusele vastavate elementide leidmiseks võime kasutada meetodit Array.filter (). Näiteks kui tahame saada kõik üksused arvude hulka, mis on suuremad kui 10, saame seda teha:

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.filter(element => element > 10); console.log(greaterThanTen) //[11, 20]

Meetodi array.filter () kasutamise süntaks on järgmine:

let newArray = array.filter(callback);

kus

  • newArray on uus massiiv, mis tagastatakse
  • array on massiiv, millele kutsutakse filtrimeetodit
  • callback on tagasihelistamisfunktsioon, mida rakendatakse massiivi igale elemendile

Kui ükski massiivi üksus ei vasta tingimusele, tagastatakse tühi massiiv. Selle meetodi kohta saate lähemalt lugeda siit.

On olukordi, kus me ei vaja kõiki elemente, mis vastavad teatud tingimusele. Vaja on lihtsalt ühte tingimustele vastavat elementi. Sellisel juhul vajate meetodit find ().

Array.find ()

Esimese kindlale tingimusele vastava elemendi leidmiseks kasutame meetodit Array.find (). Nii nagu filtrimeetod, võtab see argumendina tagasihelistamise ja tagastab esimese helistamistingimusele vastava elemendi.

Kasutame ülaltoodud näites massiivi leidmismeetodit.

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find(element => element > 10); console.log(greaterThanTen)//11

Massiivi.find () süntaks on

let element = array.find(callback);

Tagasihelistamine on funktsioon, mis käivitatakse massiivi igale väärtusele ja võtab kolm argumenti:

  • element - itereeritav element (kohustuslik)
  • index - praeguse elemendi indeks / asukoht (valikuline)
  • array- findkutsutud massiiv (valikuline)

Pange tähele, et kui ükski massiivi üksus ei vasta tingimusele, naaseb see undefined.

Aga kui soovite siiski kontrollida, kas teatud element on massiivis? Kuidas seda teha?

Massiiv sisaldab. ()

Meetod hõlmab () määrab, kas massiiv sisaldab teatud väärtust ja tagastab vastavalt väärtusele tõene või väär.

Nii et kui soovime ülaltoodud näites kontrollida, kas 20 on üks massiivi elementidest, saame seda teha:

const array = [10, 11, 3, 20, 5]; const includesTwenty = array.includes(20); console.log(includesTwenty)//true

Märkate erinevust selle meetodi ja teiste kaalutletud meetodite vahel. See meetod aktsepteerib argumendina pigem tagasihelistamist kui väärtust. Siin on meetodi hõlmab süntaks:

const includesValue = array.includes(valueToFind, fromIndex)

Kus

  • valueToFind on väärtus, mida massiivis kontrollite (kohustuslik), ja
  • fromIndex on massiivi indeks või asukoht, millest soovite elementi otsima hakata (valikuline)

Indeksi kontseptsiooni saamiseks külastage uuesti meie näidet. Kui me tahame kontrollida, kas massiiv sisaldab 10 muud positsiooni peale esimese elemendi, saame seda teha:

const array = [10, 11, 3, 20, 5]; const includesTenTwice = array.includes(10, 1); console.log(includesTenTwice)//false

Array.indexOf ()

Meetod indexOf () tagastab esimese indeksi, kust antud massiivi võib leida. See tagastab -1, kui elementi massiivis pole.

Tuleme tagasi oma näite juurde. Leiame massiivist indeks 3.

const array = [10, 11, 3, 20, 5]; const indexOfThree = array.indexOf(3); console.log(indexOfThree)//2

Selle süntaks sarnaneb includesmeetodi omaga .

const indexOfElement = array.indexOf(element, fromIndex)

Kus

  • element on element, mida massiivis kontrollite (kohustuslik), ja
  • fromIndex on massiivi indeks või asukoht, millest soovite elementi otsima hakata (valikuline)

On oluline märkida, et nii includesja indexOfmeetodeid kasutada range võrdsuse ( "===") otsida massiivi. Kui väärtused on eri tüüpi (näiteks "4" ja 4), nad tagasi falseja -1vastavalt.

Kokkuvõte

Nende massiivimeetodite korral ei pea massiivi otsimiseks kasutama for loopi. Sõltuvalt sellest, mida vajate, saate otsustada, milline neist meetoditest sobib teie juhtumi jaoks kõige paremini.

Siin on kokkuvõte iga meetodi kasutamisest:

  • Kasutage seda, filterkui soovite massiivist leida kõik konkreetsele tingimusele vastavad üksused.
  • Kasutage, findkui soovite kontrollida, kas vähemalt üks üksus vastab konkreetsele tingimusele.
  • Kasutage, includeskui soovite kontrollida, kas massiiv sisaldab konkreetset väärtust.
  • Kasutage seda, indexOfkui soovite massiivist leida konkreetse üksuse indeksi.

Kas soovite uue artikli avaldamise korral märguandeid saada? Kliki siia.