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.