Partage
  • Partager sur Facebook
  • Partager sur Twitter

indexOf is not a function

Pour les tableaux

    11 mars 2009 à 21:06:36

    Quasiment tout est dans le titre, je souhaite utiliser indexOf et la console Firefox me renvoie cette erreur...

    function tabalien()
     {
     alealien = (Math.floor(Math.random() * 10)); //nombre aléatoire en 0 et 9
     if (alienvivant[alealien] == 'vivant' && combattantalien.indexOf(alien[alealien]) == -1) //premiere condition assez claire, problème pour la deuxieme
      {
      combattantalien[combattantalien.length] = alien[alealien]; //affectation
      }
     else
      {
      tabalien(); //sinon, on relance jusqu'a ce que ça marche...
      }
     }
    


    C'est dans cette fonction. C'est peut être pas très clair...
    • Partager sur Facebook
    • Partager sur Twitter
      11 mars 2009 à 22:35:17

      Qu'est-ce que contient combattantalien ? Sûrement pas du texte...
      • Partager sur Facebook
      • Partager sur Twitter
        11 mars 2009 à 23:14:48

        combattantalien est un tableau qui contient une partie de celui là:

        alien = ['aliena', 'alienb', 'alienc', 'aliend', 'aliene', 'alienf', 'alieng', 'alienh', 'alieni', 'alienj'];

        Ça correspond aux ID de div du document HTML.

        En gros, le if est censé me permettre de savoir si l'alien concerné est déja sélectionné. Si non, alors je le rajoute, si oui, je rappelle la fonction pour en trouver un autre.

        Lors de sa création, combattantalien est vide.
        • Partager sur Facebook
        • Partager sur Twitter
          12 mars 2009 à 0:06:48

          Montre plus de code. Parce que c'est censé fonctionné, là...
          • Partager sur Facebook
          • Partager sur Twitter
            12 mars 2009 à 0:38:27

            function combattantalien()
            {
            if (nbalienvivant >= nombregentil)
            {
            for (cptalien = 0; cptalien<=nombregentil-1; cptalien++)
            {
            tabalien();
            }
            }
            else
            {
            for (cptalien = 0; cptalien<=9; cptalien++)
            {
            if (alienvivant[cptalien] == 'vivant')
            {
            combattantalien[combattantalien.length] = alien[cptalien];
            }
            }
            }
            }
            function tabalien()
            {
            alealien = (Math.floor(Math.random() * 10));
            if (alienvivant[alealien] == 'vivant' && combattantalien.indexOf(alien[alealien]) == -1)
            {
            combattantalien[combattantalien.length] = alien[alealien];
            }
            else
            {
            tabalien()
            }
            }
            


            Et les tableaux :

            function recuperationtableaux()
            {
            alien = ['aliena', 'alienb', 'alienc', 'aliend', 'aliene', 'alienf', 'alieng', 'alienh', 'alieni', 'alienj'];
            alienvivant = ['vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant'];
            }
            


            J'ai rajouté la fonction au dessus et les tableaux. Je comprends toujours pas le problème...
            • Partager sur Facebook
            • Partager sur Twitter
              12 mars 2009 à 0:52:48

              Je comprends pas ce qui cloche. Je viens de tester : avec le code ci-dessous tout fonctionne très bien !

              alien = ['aliena', 'alienb', 'alienc', 'aliend', 'aliene', 'alienf', 'alieng', 'alienh', 'alieni', 'alienj'];
              alienvivant = ['vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant', 'vivant'];
              combattantalien = [];
              function tabalien()
              {
              alealien = (Math.floor(Math.random() * 10));
              if (alienvivant[alealien] == 'vivant' && combattantalien.indexOf(alien[alealien]) == -1)
              {
              combattantalien[combattantalien.length] = alien[alealien];
              }
              else
              {
              tabalien()
              }
              }
              alert(combattantalien);
              tabalien();
              alert(combattantalien);
              
              • Partager sur Facebook
              • Partager sur Twitter
                12 mars 2009 à 1:30:01

                HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA J'ai trouvé l'erreur, c'est un truc bête...j'ai une fonction qui s'appelle combattantalien...j'ai fait un alert et la fonction entière s'est affiché XD
                Je vais corrigé ça tout de suite !
                Merci de vos réponses ! (j'aurai pas pensé au alert(combattantalien) ^^ )
                • Partager sur Facebook
                • Partager sur Twitter
                  12 mars 2009 à 1:40:19

                  Les alert() sont toujours très efficaces pour tester/débugguer un script ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  indexOf is not a function

                  × 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