Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengalih keluar Item Array dengan Selamat Semasa Lelaran dalam JavaScript?

Bagaimana untuk Mengalih keluar Item Array dengan Selamat Semasa Lelaran dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-12-28 18:54:11
asal
230 orang telah melayarinya

How to Safely Remove Array Items During Iteration in JavaScript?

Mengalih keluar Item Tatasusunan dalam Gelung: Mengekalkan Lelaran

Masalah:

Mengulang melalui tatasusunan dan mengalih keluar item boleh menyebabkan tingkah laku yang tidak dijangka apabila menggunakan kaedah splice(). Apabila item dipadamkan, tatasusunan diindeks semula, berpotensi melangkau elemen berikutnya. Ini membawa kepada ralat pembolehubah tidak ditentukan yang disebut.

Penyelesaian:

Terdapat dua pendekatan utama untuk menangani isu ini:

  1. Mengurangkan Indeks Gelung: Selepas mengalih keluar item menggunakan splice(), kurangkan indeks gelung (i--) untuk mengambil kira pengindeksan semula. Ini memastikan gelung akan diteruskan dengan elemen yang betul.
  2. Lelaran Terbalik: Daripada lelaran dalam tertib menaik (i ), lelaran secara terbalik (i--) untuk mengelakkan kesan re -pengindeksan. Dalam pendekatan ini, item seterusnya yang akan diperiksa terletak pada indeks yang lebih rendah daripada yang semasa, jadi pengindeksan semula tidak menjejaskannya.

Contoh:

var i = Auction.auctions.length;
while (i--) {
    ...
    if (...) {
        Auction.auctions.splice(i, 1);
    }
}
Salin selepas log masuk

Dengan mengulang secara terbalik, pengalihan keluar item tidak menjejaskan item seterusnya dalam lelaran. Oleh itu, gelung diteruskan tanpa gangguan, memadamkan item seperti yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Item Array dengan Selamat Semasa Lelaran dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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