Partage
  • Partager sur Facebook
  • Partager sur Twitter

Faire un array d'éléments unique supprimer doublon

    22 juin 2018 à 11:34:06

    Bonjour, je suis actuellement entrain de suivre le cours "Algorithmique pour l'apprenti programmeur" et je sèche totalement sur l'exercice suivant : https://openclassrooms.com/courses/algorithmique-pour-l-apprenti-programmeur/un-peu-de-pratique-3#/id/r-1467396


    L'algorithme :

    On constitue une "liste des éléments uniques déjà rencontrés" (que
    
    l'on va appeler U comme Unique), qui au départ est vide. On parcourt
    
    la liste donnée en entrée, et pour chaque élément, on regarde s'il
    
    est présent dans U (on peut utiliser pour cela l'algorithme présenté
    
    dans la section précédente). S'il n'y est pas, on l'y ajoute. À la
    
    fin du parcours, U contient tous les éléments uniques de la liste de
    
    départ : on peut la renvoyer, c'est une solution à notre problème.




    J'ai fait tout ce que je pouvais pour implémenter ce fameux code, j'ai beau m'arracher les cheveux mais impossible, j'en suis arrivé à ça :


    var depart = ['A','A','B','C','B','D','A']
    
    var U = ['']
    
    for (i = 0; i < depart.length && U.length; i++) {
        item = depart[i]
        if (item != U[i]) {
            U.push(item)
        }
    }
    
    console.log(U)


    Mais ça ne fait que recréer un nouvel array sans supprimer les doublons.

    J'imagine qu'il a surement une methode pour pouvoir sélectionner tout le array et non pas seulement "U[i]" dans mon if.

    J'ai essayer aussi ça :

    var depart = ['A','A','B','C','B','D','A']
    
    var U = ['']
    
    for (i = 0; i < depart.length && U.length; i++) {
        item = depart[i]
        if (item != U[i]) {
            U.push(item)
        }
    }
    
    console.log(U)

    Mais rien n'y fait


    Merci.

    -
    Edité par Yanntorche 22 juin 2018 à 11:39:23

    • Partager sur Facebook
    • Partager sur Twitter
      22 juin 2018 à 11:39:05

      Hello,

      Suis mal réveillé ce matin, mais la ta comme tu parts d'un tableau vide et que tu compare les indices incrémentés 1 à 1 , la condition sera toujours différentes donc oui tu créés un doublon.

      Traduit en Français se que tu as écris...

      -
      Edité par Lucky13 22 juin 2018 à 11:39:19

      • Partager sur Facebook
      • Partager sur Twitter
        22 juin 2018 à 11:42:40

        Lucky13 a écrit:

        Hello,

        Suis mal réveillé ce matin, mais la ta comme tu parts d'un tableau vide et que tu compare les indices incrémentés 1 à 1 , la condition sera toujours différentes donc oui tu créés un doublon.

        Traduit en Français se que tu as écris...

        -
        Edité par Lucky13 il y a moins de 30s


        Quelle est donc la solution ?
        • Partager sur Facebook
        • Partager sur Twitter
          22 juin 2018 à 11:50:43

          Comparer depart[i] avec tous les éléments de U
          • Partager sur Facebook
          • Partager sur Twitter
            22 juin 2018 à 11:54:17

            TryAndShare a écrit:

            Comparer depart[i] avec tous les éléments de U


            J'y ai penser mais je connais pas le méthode pour y arriver
            • Partager sur Facebook
            • Partager sur Twitter
              22 juin 2018 à 11:56:52

              C'est un exercice il faut chercher encore un peu (c'est pour ton bien...)

              Ecris le en pseudo code (en Français) se sera plus simple pour toi.

              • Partager sur Facebook
              • Partager sur Twitter
                22 juin 2018 à 11:57:50

                élément U est vide et donc cette condition depart.length && U.length n'est pas rempli
                • Partager sur Facebook
                • Partager sur Twitter
                  22 juin 2018 à 12:10:42

                  Yanntorche a écrit:

                  TryAndShare a écrit:

                  Comparer depart[i] avec tous les éléments de U


                  J'y ai penser mais je connais pas le méthode pour y arriver

                  Comment as-tu fait pour accéder aux éléments de depart ?
                  C'est la même méthode pour accéder à ceux de U ;)

                  DevMercenaire a écrit:

                  élément U est vide et donc cette condition depart.length && U.length n'est pas rempli


                  Dans son code U n'est pas vide (il contient 1 élément), mais effectivement il devrait l'être.

                  -
                  Edité par TryAndShare 22 juin 2018 à 12:14:06

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 juin 2018 à 12:17:53


                    TryAndShare a écrit:

                    Yanntorche a écrit:

                    TryAndShare a écrit:

                    Comparer depart[i] avec tous les éléments de U


                    J'y ai penser mais je connais pas le méthode pour y arriver

                    Comment as-tu fait pour accéder aux éléments de depart ?
                    C'est la même méthode pour accéder à ceux de U ;)

                    DevMercenaire a écrit:

                    élément U est vide et donc cette condition depart.length && U.length n'est pas rempli


                    Dans son code U n'est pas vide (il contient 1 élément), mais effectivement il devrait l'être.

                    -
                    Edité par TryAndShare il y a 3 minutes

                    Length ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 juin 2018 à 12:27:48

                      TryAndShare a écrit:

                      Yanntorche a écrit:

                      TryAndShare a écrit:

                      Comparer depart[i] avec tous les éléments de U


                      J'y ai penser mais je connais pas le méthode pour y arriver

                      Comment as-tu fait pour accéder aux éléments de depart ?
                      C'est la même méthode pour accéder à ceux de U ;)

                      DevMercenaire a écrit:

                      élément U est vide et donc cette condition depart.length && U.length n'est pas rempli


                      Dans son code U n'est pas vide (il contient 1 élément), mais effectivement il devrait l'être.

                      -
                      Edité par TryAndShare il y a 7 minutes


                      Ha oui c'est vrai ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 juin 2018 à 16:53:14

                        Tu veux vraiment qu'on te donne une solution toute faite? Je veux dire, c'est ta demande?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                          22 juin 2018 à 18:56:42

                          Lucky13 a écrit:

                          C'est un exercice il faut chercher encore un peu (c'est pour ton bien...)

                          Ecris le en pseudo code (en Français) se sera plus simple pour toi.


                          En effet...
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Faire un array d'éléments unique supprimer doublon

                          × 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