"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment supprimer en toute sécurité les éléments du tableau en JavaScript lors de la boucle?

Comment supprimer en toute sécurité les éléments du tableau en JavaScript lors de la boucle?

Publié le 2025-03-04
Parcourir:238

How to Safely Remove Array Items in JavaScript While Looping?

Looping via les tableaux et supprimer les éléments sans interruption

dans JavaScript, en utilisant la méthode Splice () pour supprimer les éléments d'un tableau présente souvent le défi de itérer à travers le tableau sans les valeurs non définies. Dans le code fourni, l'utilisation de Splice () dans la boucle For fait que la propriété des secondes de l'élément d'enchères ne devient pas définie, conduisant à des erreurs.

pour résoudre ce problème, considérez les alternatives suivantes:

1. Diminuez l'index de boucle après Splice ()

Après avoir supprimé un élément à l'aide de Splice (), vous pouvez décrémenter l'index de boucle (i) pour compenser la réindexage du tableau. Cela garantit que la prochaine itération continue à partir de l'index correct.

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--; // Decrement the loop index
    }           
}

2. Itérer en revers

en itérant dans le tableau dans l'ordre inverse, la réindexer après splice () n'affectera pas les éléments restants dans l'itération.

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

En adoptant l'une de ces approches, vous pouvez déménager efficacement les tableaux et supprimer des éléments sans rencontrer le problème de valeur indéfini et assurer l'intégrité du processus de boucle.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3