Maison > interface Web > js tutoriel > Comment supprimer en toute sécurité des éléments de tableau en JavaScript pendant une boucle ?

Comment supprimer en toute sécurité des éléments de tableau en JavaScript pendant une boucle ?

Linda Hamilton
Libérer: 2024-12-26 06:54:10
original
304 Les gens l'ont consulté

How to Safely Remove Array Items in JavaScript While Looping?

Faire une boucle dans des tableaux et supprimer des éléments sans interruption

En JavaScript, l'utilisation de la méthode splice() pour supprimer des éléments d'un tableau présente souvent le défi de parcourir le tableau sans rencontrer de valeurs indéfinies. Dans le code fourni, l'utilisation de splice() dans la boucle for rend la propriété seconds de l'article mis aux enchères indéfinie, ce qui entraîne des erreurs.

Pour résoudre ce problème, envisagez les alternatives suivantes :

1. Décrémenter 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éindexation du tableau. Cela garantit que la prochaine itération continue à partir du bon index.

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
    }           
}
Copier après la connexion

2. Itérer en sens inverse

En parcourant le tableau dans l'ordre inverse, la réindexation après splice() n'affectera pas les éléments restants de l'itération.

var i = Auction.auctions.length
while (i--) {
    ...
    if (...) { 
        Auction.auctions.splice(i, 1);
    } 
}
Copier après la connexion

En adoptant avec l'une de ces approches, vous pouvez parcourir efficacement les tableaux et supprimer des éléments sans rencontrer le problème de valeur indéfinie et garantir l'intégrité du processus de boucle.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal