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.
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