Rumah >hujung hadapan web >tutorial js >Bagaimana untuk membuat litar pintas JavaScript untuk Setiap Gelung?

Bagaimana untuk membuat litar pintas JavaScript untuk Setiap Gelung?

Barbara Streisand
Barbara Streisandasal
2024-12-25 07:03:44404semak imbas

How to Short-Circuit a JavaScript forEach Loop?

Short Circuit Array.forEach: Meneroka Kaedah Gangguan Alternatif

Dalam paradigma pengaturcaraan tradisional, pernyataan putus membenarkan penamatan gelung atau kawalan serta-merta blok aliran. Walau bagaimanapun, kaedah forEach baharu dalam JavaScript tidak mempunyai persamaan terbina dalam. Ini menimbulkan persoalan: bagaimanakah kita boleh meniru gelagat pemecahan dalam konteks forEach?

Percubaan sebelum ini untuk melaksanakan pemecahan manual menggunakan return, return false atau break telah terbukti tidak berjaya. Pemulangan tidak menghentikan lelaran dan memecahkan mengakibatkan ralat masa jalan.

Nasib baik, terdapat penyelesaian alternatif yang memanfaatkan pengendalian pengecualian. Dengan melontar pengecualian tersuai, kita boleh membuat litar pintas gelung forEach dengan berkesan. Berikut ialah contoh:

var BreakException = {};

try {
  [1, 2, 3].forEach(function(el) {
    console.log(el);
    if (el === 2) throw BreakException;
  });
} catch (e) {
  if (e !== BreakException) throw e;
}

Pengecualian tersuai BreakException dibuat seketika dan dilemparkan dalam panggilan balik forEach apabila syarat yang diingini dipenuhi. Ini menyebabkan blok cuba menghentikan pelaksanaan dan meneruskan ke blok tangkapan, dengan berkesan mengganggu gelung. Adalah penting untuk mengendalikan ralat selain daripada BreakException dalam blok tangkapan untuk mengelakkan tingkah laku yang tidak dijangka.

Atas ialah kandungan terperinci Bagaimana untuk membuat litar pintas JavaScript untuk Setiap Gelung?. 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