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

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

Susan Sarandon
Lepaskan: 2024-12-23 19:02:11
asal
436 orang telah melayarinya

How to Safely Remove Items from an Array While Iterating in JavaScript?

Lelaran Melalui Tatasusunan dan Mengalih Keluar Item Tanpa Memutuskan Gelung

Apabila mengalih keluar item daripada tatasusunan dalam gelung, anda mungkin menghadapi isu di mana splice() menghasilkan elemen berikutnya tidak boleh diakses. Ini kerana splice() mengindeks semula tatasusunan, berpotensi melangkau item.

Masalah:

Dalam contoh berikut, mengurangkan "saat" dan kemudian menyambung item berdasarkan nilai negatifnya menyebabkan undefined ralat:

for (i = 0, len = Auction.auctions.length; i < len; i++) {
    auction = Auction.auctions[i];
    Auction.auctions[i]['seconds'] --;
    if (auction.seconds < 0) { 
        Auction.auctions.splice(i, 1);
    }           
}
Salin selepas log masuk

Penyelesaian:

Untuk menyelesaikan isu ini, pertimbangkan dua pendekatan:

  1. Penurunan Indeks Selepas Splice(): Selepas mengalih keluar item dengan splice(), kurangkan "i" untuk melaraskan pengindeksan semula:

    for (i = 0, len = Auction.auctions.length; i < len; i++) {
        auction = Auction.auctions[i];
        Auction.auctions[i]['seconds'] --;
        if (auction.seconds < 0) { 
            Auction.auctions.splice(i, 1);
            i--;
        }           
    }
    Salin selepas log masuk
  2. Lelaran Secara Songsang: Mulakan gelung dengan indeks terakhir dan lelaran secara terbalik:

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

Dengan cara ini, pengindeksan semula hanya mempengaruhi elemen berikutnya, membolehkan gelung.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Item dengan Selamat daripada Array Semasa Memulas 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