IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

tableau array !


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut tableau array !
    Bonjour,
    J'ai un ptit soucis dans ma création de tableau.
    En fait, je désire ajouter des éléments dans un tableau et renvoyer le nbr d'élément de ce taleau.
    J'aimerais savoir su'il est possible que chaque nouvel élément de ce tableau aille dans la premiere case libre

  2. #2
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    En parcourant à chaque fois le tableau et en regardant si l'élément à la position i existe, tu devrais pouvoir y arriver. (Utilisation d'une boucle while)
    Mets un petit bout de code si tu n'y arrive pas

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //------------------------------------------------------------------
    function Comptercam(cubeno) //renvoit le nbr de cam affichée
    //------------------------------------------------------------------
    {
        var cubeno;
        var nbrcam;
     
        Compter = new Array();
        Compter[0]=cubeno;
        nbrcam = Compter.length;
        alert("il y a :" +nbrcam);
        return Compter.length;
     
    }
    Sachant que dans une autre fonction (Displaycamera) j'appelle comptercam(cubeno) où cubeno est le numéro d'identification.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    j'avais mis compter(0) pour voir si ça passait...
    je vois pas comment faire la boucle

    ps désolé pour les balises

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    je suis pas sur de mes tests : Compter[i]!="" pour savoir si la case du tableau est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //------------------------------------------------------------------
    function Comptercam(cubeno) //renvoit le nbr de cam affichée
    //------------------------------------------------------------------
    {
    	var cubeno;
    	var nbrcam;
    	i =0;
     
    	Compter = new Array(34);
     
     
    	while (Compter[i]!="")
    	{
    		i++;
    		if (Compter[i]=="")
    		{
    			break;
    		}		
    	Compter[i]=cubeno;
     
    	}
     
     
     
     
    	nbrcam = Compter.length;
    	alert("il y a :" +nbrcam);
    	return Compter.length;
     
    }

  6. #6
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Dans un premier temps, ton tableau doit être une variable globale afin de conserver les éléments qui sont dedans quand tu exécute plusieurs fois ta fonction d'ajout.

    La fonction javascript qui ajoute un élément dans le premier trou et renvoi le nombre d'éléments ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <script language="JavaScript">
        var Compter = new Array();
     
        function Comptercam(cubeno) {
            var nbrcam;
            var placeLibreTrouvee = false;
            var nbrcam = Compter.length;
            var compteur = 0;
     
            //je parcours le tableau 
            while( (compteur <= nbrcam) && !placeLibreTrouvee) {
                if(Compter[compteur] == null) {
                    Compter[compteur] = cubeno;
                    placeLibreTrouvee = true;
                }
                compteur++;
            }
     
            nbrcam = Compter.length;
            alert("il y a :" +nbrcam);
        }
    </script>
    Et tu peux tester en cliquant successivement sur les liens suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a href="javascript:Comptercam('un');">test</a>
    <a href="javascript:Comptercam('deux');">test</a>
    <a href="javascript:Comptercam('trois');">test</a>
    <a href="javascript:Comptercam('quatre');">test</a>
    <a href="javascript:Comptercam('cinq');">test</a>
    <a href="javascript:Comptercam('six');">test</a>

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    aparemment je peux pas déclarer de variable globale...
    il y a tout une page en html qui appelle au départ tout une page de sript java et vb.
    c'est le seul moyen?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    j'ai réussi à déclarer la variable globale tout au début de la page de script java... ça a l'air de marcher, merci

  9. #9
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    De rien, bon courage pour la suite.

    Tu peux tester le script en initialisant 2 cases du tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var Compter = new Array();
        Compter[0] ="test";
        Compter[2] = "arg";
    et en faisant un test, tu affiche la variable compteur dans la boucle if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(Compter[compteur] == null) {
                    Compter[compteur] = cubeno;
                    placeLibreTrouvee = true;
                    alert(compteur);
               }
    Et ça te donne 1 !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    j'ai essayé de le mettre la dedans mais c'est foireux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<script src="../Scripts/MapScript_aires.js" LANGUAGE="javascript">
    		</script>
    enfin ça a l'air de marcher, faut que je me démerde maintenant pour que ça retire un élément qd j'enleve une caméra

  11. #11
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    En fait ce que je t'ai donné n'est pas génial
    J'ai fait le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var Compter = new Array();
        Compter[0] ="test";
        Compter[6] = "arg";
        alert(Compter.length);
    Et ça affiche 7, ce qui n'est pas bon du tout...

    Il vaut mieux utiliser
    - Tableau.push(valeur) pour insérer un élément
    - Tableau.splice() pour en enlever un (fait une recherche sur le forum avec "supprimer element tableau")

    Pourquoi ? parce que ces fonctions recalculent la taille réelle du tableau.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    merci pour le tuyau je vais regarder ça.
    moi ça a l'air de marcher...

  13. #13
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Hop voilà je corrige ma bêtise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
        function ajouterCam(numCam) {
            Compter.push(numCam);
        }
     
        function supprimerCam(numCam) {
            var idASupprimer = null;
            var compteur =0;
            var camTrouvee = false
     
            while( (compteur <= Compter.length) && !camTrouvee) {
                if(Compter[compteur] == numCam) {
                    idASupprimer = compteur;
                }
                compteur++;
          }
     
          if( idASupprimer != null) {
                Compter.splice(idASupprimer,idASupprimer);
            }
            else {
                alert("Element "+numCam+" non trouve");
            }
        }
     
        function afficherTableau() {
            var aff="";
            aff = aff+"Nombre d'element : "+Compter.length+"\n";
            for(var i=0; i< Compter.length ; i++) {
                aff = aff+i+"\t"+Compter[i]+"\n";
            }
            alert(aff);
        }
     
        function test() {
            ajouterCam('un');
            ajouterCam('deux');
            ajouterCam('trois');
            ajouterCam('quatre');
            afficherTableau();
            supprimerCam('deux');
            afficherTableau()
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:test();">test</a>

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    merci!
    tu mets ces fonctions en laissant la variable globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Compter = new Array();
    déclarée?

  15. #15
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    oui oui, dsl, je l'ai oubliée

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    t'excuse pas, j'ai le droit de trouver qq chose!

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    ça foire il m'affiche plein d'alert "element 901 non trouvé". puis 902 apres 10 cloques etc

  18. #18
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Tu initialise le tableau comment ?

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 71
    Par défaut
    j'ai réussi à corriger.
    par contre , je ne vois pas ou mettre un alert pour tester le nbr de camera qu'il y a dans le tableau (voir si ça marche en ajoutant ou retirant des cam)
    merci pour ton aide

  20. #20
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    J'ai fait une fonction qui affiche le tableau et juste avant le nombre d'éléments.
    Comme ça tu vois rapidement s'il te donne la bonne réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function afficherTableau() {
            var aff="";
            aff = aff+"Nombre d'element : "+Compter.length+"\n";
            for(var i=0; i< Compter.length ; i++) {
                aff = aff+i+"\t"+Compter[i]+"\n";
            }
            alert(aff);
        }
    Après tu peux te faire une fonction à toi qui retourne le nombre d'éléments...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/04/2016, 00h52
  2. [Tableaux] Trier un tableau [array]
    Par clemsouz dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2006, 13h33
  3. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56
  4. Tableau(Array) sans taill
    Par krfa1 dans le forum ASP
    Réponses: 4
    Dernier message: 21/09/2005, 22h31
  5. tableau array
    Par laclac dans le forum Langage
    Réponses: 8
    Dernier message: 01/09/2005, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo