Partage

[javascript] comment supprimer un élément d'un array ?

question simple, non ?

Sujet résolu
Le 12 mai 2008 à 13:47:59

Bonjour,

j'ai un array dont le contenu est 1,5,8,4,6 par exemple.

je souhaite supprimer le 5. Comment fait-on, sachant que je ne connais pas la position des éléments constituant l'array.

Autrement dit, je récupère un array avec x éléments. Il n'y a pas de doublon.
Je sais que la valeur 12 est dans cet array et je souhaite la supprimer.
Publicité
Le 12 mai 2008 à 13:47:59
Le 12 mai 2008 à 14:12:11

Salut,

j'ai déjà été confronté à ce problème.
Pour le résoudre, j'ai créé une fonction.

L'idée, c'est de parcourir le tableau jusqu'à trouver l'élément en question.
Une fois trouvé, on décale tous les éléments suivant d'une case vers le haut.
Puis on retire le dernier élément.

Si on ne trouve pas l'élément, on va renvoyer false.
Si on le trouve, on supprime la première fois qu'il apparait, on "comble le trou", et on renvoie true.

Array.prototype.removeValue = function(x)
{
     var trouvee = false;

      // parcours du tableau
     for(var i=0; i+2<=this.length; i++)
     {
          if(this[i] == x)
               trouvee = true;
          if(trouvee)
               this[i] = this[i+1];   // on decale
     }

     // suppression du dernier element
     if(trouvee || this[this.length-1] == x)
     {
          this.pop();
          return true;
     }
     else
        return false;
};


Pour reprendre ton exemple, si on veut supprimer le 5 :
var t = new Array(1, 5, 8, 4, 6);
t.removeValue(5);
Le 12 mai 2008 à 14:30:34

Merci Ne0,

Ta fonction fonctionne parfaitement. C'est une fonction utile que je vais garder sous le coude.
Résultat avec ta fonction

Entre temps j'avais réussi à supprimer mon élément via une autre méthode en utilisant splice ce qui m'obligait à connaitre sa position dans l'array.
autre méthode

Pour comprendre le contexte :
je renseigne la colonne numéro de fournisseur. Par défaut c'est 1. Dès que je mets autres choses, il doit me créer une ligne dans mon tableau fournisseur situé en bas.
je crée un array_histo_numfournisseur (variable globale) où je stocke tous les numéros qui on été saisis. (numéro qui d'après mes test ne sont pas considérés comme des valeurs numériques, mais bon).

Lors de mon appel à la fonction ajoutLigneAuTableauFournisseur(num_fournisseur),
je crée un autre array (array_numfourniisseur) où je stocke les numéros réellement utilisés.

ensuite je compare les 2 arrays.

restait à mettre à jour mon array_histo_numfournisseur, c'est chose faite.

[javascript] comment supprimer un élément d'un array ?

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown