Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Keluar Pramatang dari Gelung forEach dalam Node.js?

Bagaimana untuk Keluar Pramatang dari Gelung forEach dalam Node.js?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-17 21:20:30933semak imbas

How to Prematurely Exit a forEach Loop in Node.js?

Cara Mengganggu Node.js forEach Loop

Dalam situasi di mana anda perlu melintasi struktur data bersarang secara rekursif dan melaksanakan operasi untuk setiap elemen, anda mungkin menggunakan gabungan rekursi dan untukSetiap. Walau bagaimanapun, mungkin terdapat keadaan di mana anda perlu keluar dari gelung forEach lebih awal.

Tidak seperti gelung biasa dengan penyataan putus atau terus, forEach tidak mempunyai mekanisme terbina dalam untuk menghentikan lelarannya. Untuk mensimulasikan tingkah laku ini, mari kita terokai tiga pendekatan:

1. Cara "Hodoh": Menggunakan Boolean Kontekstual

Lepaskan hujah kedua kepada forEach sebagai konteks dan simpan nilai boolean di dalamnya. Di dalam fungsi panggil balik, semak boolean dan keluar jika perlu. Pendekatan ini secara visual tidak menarik.

<code class="javascript">function recurs(comment) {
    var stop = false;
    comment.comments.forEach(function (elem) {
        recurs(elem);
        if (...) stop = true;
    }, stop);
}</code>

2. Cara "Kontroversial": Pengendalian Pengecualian

Sisipkan gelung forEach dalam blok cuba-tangkap. Apabila anda ingin memecahkan, lemparkan pengecualian dan tangkap di luar gelung. Pendekatan ini boleh memberi kesan kepada prestasi dan mungkin menimbulkan kebimbangan tentang kebolehbacaan kod.

<code class="javascript">try {
    comment.comments.forEach(function (elem) {
        recurs(elem);
        if (...) throw new Error("Stop Iteration");
    });
} catch (e) {
    if (e.message === "Stop Iteration") return;
}</code>

3. Cara "Menyeronokkan": Menggunakan every()

every() ialah pilihan yang lebih baik. Ia meneruskan lelaran melalui koleksi sehingga fungsi panggil balik mengembalikan palsu. Ini berkesan bertindak sebagai pernyataan putus.

<code class="javascript">comment.comments.every(function (elem) {
    recurs(elem);
    if (...) return false;
    return true;
});</code>

Anda juga boleh menggunakan some() dan bukannya setiap() jika anda lebih suka mengembalikan true kepada break.

Atas ialah kandungan terperinci Bagaimana untuk Keluar Pramatang dari Gelung forEach dalam Node.js?. 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