Maison > interface Web > js tutoriel > Comment supprimer en toute sécurité des éléments du tableau lors d'une boucle en JavaScript ?

Comment supprimer en toute sécurité des éléments du tableau lors d'une boucle en JavaScript ?

Susan Sarandon
Libérer: 2024-12-24 05:43:20
original
587 Les gens l'ont consulté

How to Safely Remove Array Items During a Loop in JavaScript?

Parcourir un tableau et supprimer des éléments sans rompre la boucle

Pour parcourir efficacement un tableau et supprimer des éléments sans perturber l'itération, un une approche alternative est nécessaire. Lors de l'utilisation de splice() pour supprimer un élément lors d'une boucle, la réindexation du tableau peut causer des problèmes.

Une solution consiste à décrémenter le compteur de boucle (i) après la suppression d'un élément, en compensant la réindexation du tableau. -indexation.

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 to compensate for re-indexing
    }           
}
Copier après la connexion

Alternativement, itérer dans l'ordre inverse peut également résoudre le problème car la suppression d'un élément n'affecte pas les éléments qui le précèdent dans le tableau.

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

En employant l'une de ces stratégies, vous pouvez efficacement parcourir un tableau, supprimer des éléments et maintenir une itération continue sans rompre la boucle de manière inattendue.

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