Kuidas peatada JavaScript forEach?

Kuidas Peatada Javascript Foreach



Silmused on programmeerimisel üliolulised juhtimisstruktuurid, kuna need võimaldavad teil koodiplokki mitu korda käivitada. Siiski on oluline silmus mingil hetkel peatada; vastasel juhul jätkub see lõputult. See võib põhjustada probleeme, näiteks kasutada arvutis saadaolevaid ressursse või põhjustada programmide kokkujooksmist.

Selles artiklis kirjeldatakse JavaScripti forEachi silmuse peatamise protseduuri.

Kuidas peatada JavaScript forEach?

Sõltuvalt programmi spetsiifilistest vajadustest on programmeerimise tsükli peatamiseks mitu võimalust. Näiteks võite kasutada tsükli lõpetamise tingimust või katkestuslauset, näiteks murda ” või „ VÄLJU ” tsükli peatamiseks, kui teatud tingimus on täidetud. Probleem on aga selles, et ' igaühele ” loop annab nende lausete kasutamisel vea.







Näide 1: Kasutage igas JavaScripti tsüklis sõna 'break'.

Proovime peatada ' igaühele ' silmus kasutades ' murda ” avaldus. Esiteks looge paaritute arvude massiiv:



oli massiiv = [ üks , 3 , 5 , 7 , 9 , üksteist , 13 , viisteist ] ;

Kasutage massiivi kordamiseks tsüklit forEach. Kui element ' 5 ” esineb massiivi iteratsiooni ajal, peatage tsükkel:



massiivi. igaühele ( element => {

kui ( element == 5 ) {

murda ;

}

} ) ;

On näha, et katkestuslause forEachi tsüklis ei tööta:





Näide 2: Kasutage igas JavaScripti tsüklis „EXIT”.

Proovige tsükkel peatada, kasutades ' VÄLJU ' kui element ' 5 ” esineb massiivi iteratsiooni ajal:



massiivi. igaühele ( element => {

kui ( element == 5 ) {

VÄLJU ;

}

} ) ;

See põhjustab ka tõrke:

ForEach() tsükli peatamine näib olevat võimatu väljakutse, kuid siin on mõned lahendused, mida hinnata:

1. meetod: peatage JavaScript iga jaoks, kasutades „proovi/püüda” plokki

JavaScriptis pole sisseehitatud võimalust forEach() tsükli peatamiseks või katkestamiseks. Sarnase efekti saate aga saavutada, kui teete erandi ja püüate selle silmuses kinni. Selleks kasutage ' proovi/püüa ” plokk. See on juhtimisstruktuur, mis võimaldab teil käsitleda koodis esineda võivaid erandeid või käitusvigu. Kood, mis võib põhjustada erandi, asub jaotises ' proovi ' plokk, samas kui erandit käsitlev kood sisaldub ' püüda ” plokk.

Süntaks

Proovi/catch ploki kasutamiseks kasutage alltoodud süntaksit:

proovi {

// kood, mis võib teha erandi

} püüda ( viga ) {

// kood erandi käsitlemiseks

}

Näide

Mähkige forEach() tsükli kood try/catch plokki, et peatada silmus vea käsitlemise teel:

proovi {

massiivi. igaühele ( element => {

kui ( element == 5 ) {

viskama uus Erand ( 'peatus' ) ;

}

} ) ;

} püüda ( ja ) {

konsool. logi ( 'Silmus on lõppenud' ) ;

}

Ülaltoodud koodilõigu puhul hüppab programm prooviblokis erandi tegemisel kohe püüdmisploki juurde ja käivitab seal koodi. See annab meile võimaluse hallata erandit ja kaitsta programmi kokkujooksmise eest.

Väljund

Üldiselt ei soovitata JavaScriptis forEach() tsükli peatamiseks kasutada try/catch plokki. Selle põhjuseks on asjaolu, et proovi/püüdmise ploki eesmärk on käsitleda erandeid, mitte juhtida tsükli voogu. Seetõttu on parem kasutada alternatiivseid meetodeid.

2. meetod: kasutage JavaScriptis tsüklit 'for'.

Kasuta ' jaoks ” silmus forEach() tsükli asemel. Breaklauset kasutatakse tsüklis for, mis võimaldab enne tsükli lõpetamise tingimuse saavutamist varakult väljuda. See võib olla kasulik, kui soovite tsükli peatada, kui teatud tingimust hinnatakse kui ' tõsi ” või tsüklist muul põhjusel väljuda.

Süntaks

Järgige järgmist süntaksit ' jaoks 'silmus:

jaoks ( las ma = 0 ; i < massiivi. pikkus ; i ++ ) {

//seisund

murda ;

}

Näide

Kasuta ' jaoks ' tsükkel massiivi itereerimiseks selle pikkuseni ja massiivi peatamiseks elemendi ' esinemise ajal 5 ” massiivis:

jaoks ( las ma = 0 ; i < massiivi. pikkus ; i ++ ) {

konst element = massiivi [ i ] ;

kui ( element == 5 ) {

murda

}

konsool. logi ( element ) ;

}

Silmus peatub, kui ' 5 ” kuvatakse massiivina:

3. meetod: kasutage JavaScriptis 'for-of' tsüklit

Võite kasutada ka ' for-of ” silmus alternatiivina forEach() tsüklile. Seda kasutatakse itereeritava objekti (nt massiivi või stringi) elementide läbimiseks. See sarnaneb for-in tsükliga, kuid on spetsiaalselt loodud itereeritavate objektidega töötamiseks ning üldiselt peetakse seda sisutihedamaks ja hõlpsamini loetavaks.

Süntaks

For-of-tsükli jaoks kasutatakse järgmist süntaksit:

jaoks ( konst massiivi element ) {

//seisund

murda ;

}

Näide

For-of-silmust kasutatakse siin massiivi itereerimiseks ja iteratsiooni peatamiseks, kui element ' 5 ” ilmub iteratsiooni ajal massiivi:

jaoks ( konst massiivi element ) {

kui ( element == 5 ) {

murda ;

}

konsool. logi ( element ) ;

}

Väljund

See kõik puudutab forEach() tsükli peatamist JavaScriptis.

Järeldus

JavaScriptis pole sisseehitatud võimalust forEach() tsükli peatamiseks või katkestamiseks. Kuid saate saavutada sarnase efekti, kasutades ' proovi/püüa” blokk. Siiski ei soovitata seda kasutada, kuna proovi/püüdmise plokk on pigem erandite käsitlemiseks kui tsükli voolu juhtimiseks. Seega on ideaalne lähenemisviis kasutada alternatiivseid meetodeid, näiteks jaoks ” või „ for-of 'silmus. Selles artiklis kirjeldasime tsükli forEach() peatamist JavaScriptis.