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 :

Explication pour une boucle sur un tableau ( débutant)


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut Explication pour une boucle sur un tableau ( débutant)
    bonjour,
    dans ce petit tuto qui calcul le nombre d'occurrence d'un nombre passé en paramètre
    je voudrais avoir des éclaircissement sur deux points pour bien comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function occurrences (x,t) { 
              var t=[10,8,10,5,20,20,20,20,5];
    	 var occureSomme= 0; // initialisation de la variable qui compte le nombre d'occurrence
    		for (var i=0 ; i<t.length ; i++) { // boucle sur le tableau avec pour limite le nombre d'indices (t.length)
    			if (t[i]==x) { // test les éléments du tableau qui correspondent au nombre entré en paramètre
    			occureSomme= occureSomme+1 ; 
     
    			}
    			}
    		console.log(x+" apparait " +occureSomme+ " fois" );
     }
    	occurrences(20,t); // pour l'exemple  on met 20 en paramètre
    pourquoi la variable occureSomme est initialisé à 0
    et pourquoi on ajoute 1 à cette même variable pour trouver le nombre exacte d’occurrences

    merci pour tout éclaircissement

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut Petit cours (ça fait pas de mal)
    Cours ici même de Jacques Guizol http://jacques-guizol.developpez.com...t/?page=page_4
    Ton occurrence commence à zéro car avant de compter une variable dans un tableau, cette même variable n'existe pas donc 0 (on part de rien) et lorsque tu boucle tu passe son index i [0,1,2,3,...] a ta variable t[i] et a chaque fois que tu trouve ton occurrence passée à la function on fait une incrémentation (SommeOccurrence + 1 ou SommeOccurrence++).

    De plus ton deuxième paramètres de ta function t ne sert a rien puisque tu re déclare à l'intérieur de ta function ta variable t que tu affecte (=) à un tableau, je te conseil quelques cours sur les variables et leur scope "accessibilité" dans ton code.

    Mais le mieux pour toi est un petit cours, bonne continuation.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    merci pour cette explication très clair
    la variable tableau t était à l'origine en globale , hors de la fonction.
    et là en copiant je l'ai mis à l’intérieur, en locale.

    j'ai lu dans un tuto que il valait mieux mettre les variables en locale , sinon risque de confusion pour le script en général.
    est ce vrai ?

    je continue mon apprentissage du javascript et je ne manquerais pas d’aller visiter ton lien.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    headmax, dans ton explication , tu dit que, dans le contexte de ce petit tuto, SommeOccurrence + 1 équivaut à SommeOccurrence++, hors j'ai remplacé SommeOccurrence + 1 par SommeOccurrence++ et le résultat est faux ( il doit trouver 4 occurrences, hors il en trouve zéro ), avec ++SommeOccurrence, le résultat est exacte

    " ++number retourne la valeur de number incrémentée
    si on place l'opérateur après la variable à incrémenter (number++), l'opération retourne la valeur de number avant qu'elle ne soit incrémentée"

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 135
    Points : 44 923
    Points
    44 923
    Par défaut
    Bonjour,
    j'ai remplacé SommeOccurrence + 1 par SommeOccurrence++
    Attention
    valeur = valeur +1 est équivalent à valeur ++, il te faut donc remplacer SommeOccurrence = SommeOccurrence + 1 par SommeOccurrence++.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    et oui , merci Nosmoking , et désolé headmax,
    j'avais mis valeur = valeur++ au lieu de simplement valeur++
    donc valeur = valeur+1 et équivalent à valeur = ++valeur et équivalent à valeur++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] La bonne syntaxte pour une boucle sur le nom d'un Subform
    Par docjo dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/04/2012, 00h43
  2. Syntaxe pour une boucle for sur des combobox
    Par Tifriis dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/10/2010, 14h52
  3. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 13h45
  4. [MySQL] Juste pour une information sur les boucle ?
    Par miccheld dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/10/2007, 15h32
  5. Réponses: 1
    Dernier message: 28/03/2005, 13h33

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