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

Mary-Kate Olsen
Lepaskan: 2024-10-17 21:20:30
asal
788 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!