Faire une boucle dans des tableaux et supprimer des éléments sans rompre la boucle
En JavaScript, parcourir un tableau et supprimer des éléments peut être délicat en raison de la façon dont splice() fonctionne. Lorsqu'un élément est supprimé d'un tableau à l'aide de splice(), le tableau est réindexé, ce qui peut conduire à ignorer un index et une longueur mise en cache obsolète.
Pour résoudre ce problème, il existe deux solutions élégantes :
Décrémentation de l'index après l'épissage
Une approche consiste à décrémenter l'index de boucle i après avoir effectué une épissure(). En décrémentant i, nous nous assurons que l'itération suivante ignore l'élément précédemment supprimé, évitant ainsi tout écart dans la boucle.
Itération à l'envers
Alternativement, nous pouvons itérer à travers le tableau dans l’ordre inverse. Partir du dernier index et décrémenter i à chaque itération évite le problème de réindexation puisque les éléments supprimés aux indices plus élevés n'affectent pas les indices inférieurs. Cette méthode permet une boucle plus efficace et plus propre.
Exemple :
Voici une version révisée du code utilisant la technique d'itération inversée :
var i = Auction.auctions.length; while (i--) { ... if (...) { Auction.auctions.splice(i, 1); } }
Cette approche maintient l'intégrité de la boucle en itérant dans l'ordre inverse et en traitant les éléments supprimés sans affecter les éléments restants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!