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

Adakah `return` Menghentikan Gelung `forEach` JavaScript?

DDD
DDDasal
2025-01-04 21:07:40929semak imbas

Does `return` Stop a JavaScript `forEach` Loop?

Memahami Penggunaan pulangan dalam forEach Function

Dalam fungsi forEach JavaScript, menggunakan kata kunci return mempunyai kesan terhad.

Kesan pulangan

Dalam masa untukSetiap fungsi panggil balik, pulangan hanya mempengaruhi pelaksanaan panggilan balik tertentu itu. Ia tidak memecahkan gelung dan tidak menghalang panggilan balik berikutnya daripada berjalan. Oleh itu, dalam contoh yang disediakan:

[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)      
})

Apabila n sama dengan 3, panggilan balik akan mengembalikan palsu, yang bersamaan dengan mengembalikan "tidak ditentukan" dalam konteks ini. Walau bagaimanapun, gelung akan diteruskan seperti yang dijangkakan dan nombor seterusnya (4) akan dimaklumkan.

Kaedah Lelaran Alternatif

Jika anda perlu keluar dari gelung berdasarkan syarat, pertimbangkan untuk menggunakan kaedah lelaran alternatif seperti:

  • A mudah gelung:

    for (let i = 0; i < array.length; i++) {
    if (array[i] == 3) {
      break;
    }
    alert(array[i]);
    }
  • Array.prototype.every():

    array.every((n) => {
    if (n == 3) {
      return false; // Exit the loop
    }
    alert(n);
    return true;
    });

Dokumentasi Rangkaian Pembangun Mozilla

Seperti yang dinyatakan dalam Pembangun Mozilla Dokumentasi rangkaian:

"Tiada cara untuk menghentikan atau memecahkan gelung forEach() selain dengan membuang pengecualian. Jika anda memerlukan tingkah laku sedemikian, kaedah forEach() ialah alat yang salah."

Atas ialah kandungan terperinci Adakah `return` Menghentikan Gelung `forEach` JavaScript?. 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