Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menamatkan Pramatang JavaScript yang Tidak Dapat Dihentikan untuk Setiap Gelung?
Cara Menghentikan JavaScript untuk Setiap Gelung yang Tidak Boleh Dihalang
Apabila merentasi data bersarang yang kompleks dengan forEach gelung dalam JavaScript, anda mungkin menghadapi senario yang anda perlukan menamatkan proses lelaran secara pramatang. Walau bagaimanapun, tidak seperti binaan pengaturcaraan lain, forEach tidak menyediakan cara yang jelas untuk keluar daripada gelung menggunakan break.
Paradoks Lelaran
ForEach gelung melaksanakan fungsi panggil balik pada setiap elemen tatasusunan atau objek. Walau bagaimanapun, ketiadaan pernyataan rehat tradisional boleh membingungkan, kerana ia menghalang penamatan serta-merta gelung.
Strategi Keluar Alternatif
Walaupun tiada rehat kenyataan, terdapat beberapa penyelesaian untuk mencapai kesan yang serupa:
1. Kawalan Kontekstual (Cara Yang Hodoh)
Haruskan objek konteks ke panggilan balik forEach dan tetapkan bendera boolean di dalamnya untuk menunjukkan masa untuk berhenti. Pendekatan ini melibatkan kod yang tidak sedap dipandang.
<code class="js">function recurs(comment) { const context = { stop: false }; comment.comments.forEach(function(elem) { recurs(elem); // Check context flag if (context.stop) return; }); }</code>
2. Pengendalian Pengecualian (Cara Kontroversial)
Kelilingi gelung forEach dengan blok cuba-tangkap dan buang pengecualian apabila anda ingin menamatkan lelaran. Kaedah ini boleh memberi kesan kepada prestasi tetapi boleh dirangkumkan.
<code class="js">try { comment.comments.forEach(function(elem) { recurs(elem); // Throw exception to break if (you_want_to_break) throw new Error(); }); } catch (e) {}</code>
3. The Fun Way (Menggunakan every())
Gunakan kaedah every(), yang berkelakuan serupa dengan forEach tetapi mengembalikan benar atau salah untuk menunjukkan sama ada semua elemen memenuhi syarat.
<code class="js">comment.comments.every(function(elem) { recurs(elem); // Return false to break if (you_want_to_break) return false; // Return true to continue return true; });</code>
Dengan memanfaatkan pendekatan alternatif ini, anda boleh mengawal penamatan gelung forEach dengan berkesan, membolehkan anda menyesuaikan gelagat aplikasi JavaScript anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menamatkan Pramatang JavaScript yang Tidak Dapat Dihentikan untuk Setiap Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!