Partage
  • Partager sur Facebook
  • Partager sur Twitter

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

question simple, non ?

Sujet résolu
    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.
    • Partager sur Facebook
    • Partager sur Twitter
      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);
      
      • Partager sur Facebook
      • Partager sur Twitter
        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.
        • Partager sur Facebook
        • Partager sur Twitter

        [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é.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown