Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Memecahkan Gelung Infinite dalam JavaScript forEach?

Bagaimana untuk Memecahkan Gelung Infinite dalam JavaScript forEach?

Barbara Streisand
Barbara Streisandasal
2024-10-17 21:18:30661semak imbas

How to Break from Infinite Looping in JavaScript forEach?

Mengelakkan Gelung Infinite dalam JavaScript forEach

Masalah:
Dalam Node.js dan Mongoose, melaksanakan fungsi rekursif dalam gelung forEach boleh mengakibatkan gelung tak terhingga. Bagaimanakah kita boleh menghalang perkara ini?

Jawapan:
Memecah daripada gelung forEach secara langsung tidak mungkin, kerana ia dilaksanakan sebagai satu operasi tanpa struktur gelung tradisional. Walau bagaimanapun, terdapat kaedah alternatif untuk meniru tingkah laku melanggar:

1. Menggunakan Konteks:
Lepaskan hujah kedua kepada forEach untuk digunakan sebagai konteks, dan simpan pembolehubah boolean di dalamnya. Gunakan pernyataan if dalam fungsi forEach untuk menyemak boolean dan keluar jika perlu.

2. Pengendalian Pengecualian:
Sisipkan keseluruhan gelung forEach dalam blok tangkap cuba dan lemparkan pengecualian apabila anda ingin memecahkan. Kaedah ini kurang diutamakan kerana kesannya terhadap prestasi dan kebolehselenggaraan kod.

3. Menggunakan every() atau some():
Daripada forEach, gunakan kaedah every() atau some(), yang membenarkan lelaran tersuai, kawalan dan keluar awal berdasarkan nilai pulangan.

Contoh menggunakan setiap():

<code class="javascript">['a', 'b', 'c'].every(function(element, index) {
  // Do your thing, then:
  if (you_want_to_break) return false;
  else return true;
});</code>

Atas ialah kandungan terperinci Bagaimana untuk Memecahkan Gelung Infinite dalam JavaScript forEach?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn