Rumah >hujung hadapan web >tutorial js >Adakah `return` Menghentikan Lelaran Gelung `forEach`?

Adakah `return` Menghentikan Lelaran Gelung `forEach`?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 18:13:09281semak imbas

Does `return` Stop a `forEach` Loop's Iteration?

Bagaimanakah pemulangan Mempengaruhi Lelaran forEach Fungsi?

Apabila menggunakan fungsi forEach, anda mungkin menjangkakan bahawa pengembalian nilai palsu akan tercetus daripada gelung dan hentikan lelaran selanjutnya. Walau bagaimanapun, ini tidak berlaku.

Maksud pulangan dalam forEach

Dalam fungsi forEach, kata kunci pulangan beroperasi secara berbeza daripada dalam gelung lain. Daripada menghentikan keseluruhan gelung, ia hanya mengembalikan hasil lelaran semasa.

Contoh:

Pertimbangkan kod JavaScript berikut:

$('button').click(function () {
   [1, 2, 3, 4, 5].forEach(function (n) {
      if (n == 3) {
         // it should break out here and doesn't alert anything after
         return false
      }
      alert(n)      
   })
})

Penjelasan:

Apabila fungsi iterator menemui n == 3, ia mengembalikan palsu. Ini tidak menamatkan keseluruhan gelung sebaliknya menunjukkan bahawa lelaran semasa harus kembali palsu.

Mengapa Ia Terus Berulang:

Fungsi forEach mengabaikan nilai yang dikembalikan dan meneruskan lelaran melalui elemen tatasusunan yang tinggal. Ini kerana forEach direka bentuk untuk lelaran ke atas keseluruhan tatasusunan, tanpa mengira hasil fungsi iterator.

Pilihan Gelung Alternatif:

Jika anda perlu keluar gelung secara bersyarat, pertimbangkan untuk menggunakan kaedah gelung alternatif seperti:

  • Mudah gelung
  • untuk...gelung
  • Array.prototype.every()
  • Array.prototype.some()
  • Array.prototype.find ()
  • Array.prototype.findIndex()

Atas ialah kandungan terperinci Adakah `return` Menghentikan Lelaran Gelung `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