logo

Ero indexofin ja haun välillä JavaScriptissä

Esittely:

JavaScript on laajalti käytetty ohjelmointikieli, ja se tarjoaa useita sisäänrakennettuja menetelmiä merkkijonojen käsittelyyn. Kaksi yleisimmin käytettyä menetelmää tietyn merkin tai alimerkkijonon etsimiseen ovat sisällysluettelo() ja Hae() . Vaikka nämä kaksi menetelmää saattavat näyttää toiminnaltaan samanlaisilta, niillä on muutamia keskeisiä eroja. Tässä artikkelissa tutkimme eroja indexOf()- ja search():n välillä JavaScriptissä.

indexOf() -menetelmä:

The sisällysluettelo() Metodi on sisäänrakennettu JavaScript-funktio, jota käytetään etsimään indeksi ensimmäisestä osamerkkijonosta tietyssä merkkijonossa. Tämä menetelmä palauttaa määritetyn osamerkkijonon ensimmäisen esiintymän indeksin merkkijonon alusta alkaen. Jos alimerkkijonoa ei löydy, menetelmä palauttaa -1 .

Syntaksi:

Syntaksi sisällysluettelo() menetelmä on seuraava:

 string.indexOf(searchValue[, fromIndex]) 

Tässä, merkkijono onko etsittävä merkkijono, searchValue on haettava arvo, ja hakemistosta on valinnainen parametri, joka määrittää paikan merkkijonossa, josta haun tulee alkaa. Jos hakemistosta ei tarjota, sisällysluettelo() menetelmä aloittaa haun merkkijonon alusta. Jos hakemistosta on negatiivinen arvo, haku alkaa merkkijonon lopusta.

Esimerkki:

polymorfismi

Otetaan esimerkki ymmärtääksemme sisällysluettelo() menetelmä:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

Lähtö:

 16 

Selitys:

Tässä, indexOf()-menetelmä etsii sanan ensimmäistä esiintymää 'voimakas' merkkijonossa 'JavaScript on tehokas ohjelmointikieli' . Sanasta lähtien 'voimakas' näkyy hakemistossa 16 , menetelmä palauttaa 16 .

haku() menetelmä:

The haku() -menetelmä on myös sisäänrakennettu JavaScript-funktio, jota käytetään etsimään annetussa merkkijonossa olevan alimerkkijonon ensimmäisen merkin indeksi. Tämä menetelmä palauttaa määritetyn osamerkkijonon ensimmäisen esiintymän indeksin merkkijonon alusta alkaen. Jos alimerkkijonoa ei löydy, menetelmä palauttaa -1 .

Syntaksi:

Syntaksi haku() -menetelmä on seuraava:

 string.search(regexp) 

Tässä, merkkijono on haettava merkkijono ja regexp on tavallinen ilme mallia etsittäväksi. Jos tavallinen ilme kuvio löytyy, Hae() menetelmä palauttaa osuman ensimmäisen merkin indeksin. Jos säännöllisen lausekkeen mallia ei löydy, menetelmä palauttaa -1 .

Esimerkki:

Otetaan esimerkki ymmärtääksemme Hae() menetelmä:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

Lähtö:

 16 

Selitys:

Tässä, Hae() menetelmä etsii tavallinen ilme kuvio /voimakas/ merkkijonossa 'JavaScript on tehokas ohjelmointikieli' . Koska säännöllinen lausekemalli vastaa sanaa 'voimakas' , menetelmä palauttaa 16 .

Erot indexOf() ja search() välillä:

Vaikka molemmat sisällysluettelo() ja Hae() menetelmiä käytetään etsimään alimerkkijonoa tietystä merkkijonosta, niillä on muutamia keskeisiä eroja. Katsotaanpa näitä eroja vierekkäin:

indexOf() -menetelmä haku() -menetelmä
sisällysluettelo() menetelmä etsii tiettyä osamerkkijonoa annetusta merkkijonosta. Hae() menetelmä etsii säännöllisen lausekkeen mallia annetusta merkkijonosta.
IndeksiOf()-menetelmä palauttaa määritetyn osamerkkijonon ensimmäisen esiintymän indeksin. Search()-menetelmä palauttaa osuman ensimmäisen merkin indeksin.
IndexOf()-menetelmä ei tue säännöllisiä lausekkeita. Search()-menetelmä tukee säännöllisiä lausekkeita.
IndexOf()-menetelmä voi hyväksyä valinnaisen parametrin fromIndex aloittaakseen haun tietystä indeksistä. Search()-menetelmä ei hyväksy valinnaista parametria haun aloittamiseksi tietystä indeksistä.
IndexOf()-menetelmä on nopeampi kuin search()-menetelmä, koska se ei tue säännöllisiä lausekkeita. Search()-menetelmä on hitaampi kuin indexOf()-menetelmä, koska se tukee säännöllisiä lausekkeita.
IndexOf()-metodi on isot ja pienet kirjaimet erotteleva. Search()-metodi on myös oletusarvoisesti kirjainkoolla huomioitava, mutta se voidaan tehdä eroon kirjainkoosta käyttämällä /i lippu säännöllisen lausekkeen mallissa.
IndexOf()-menetelmää käytetään laajalti yksinkertaisiin merkkijonohakuihin. Search()-menetelmää käytetään laajalti monimutkaiseen kuvioiden sovittamiseen säännöllisten lausekkeiden avulla.

Johtopäätös:

Lopuksi molemmat sisällysluettelo() ja Hae() menetelmät ovat hyödyllisiä etsiessäsi alimerkkijonoa annetusta merkkijonosta. Niissä on kuitenkin muutamia keskeisiä eroja, jotka tekevät niistä sopivia erilaisiin käyttötarkoituksiin. IndexOf()-menetelmä on nopeampi ja sopivampi yksinkertaisiin merkkijonohakuihin, kun taas search()-menetelmä tukee säännöllisiä lausekkeita ja soveltuu paremmin monimutkaiseen kuvioiden yhteensovittamiseen. On tärkeää valita sopiva menetelmä ohjelman erityisvaatimusten perusteella.