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 :

Fonction retour non conforme


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Fonction retour non conforme
    Bonjour,

    après quelques heures de recherche à tourner le code dans tous les sens, je poste ce message car je ne comprends pas là où j'ai faux.

    Je suis le cours de grafikart sur youtube concernant le javascript. J'essaie de refaire un exercice de fonction de cette vidéo (l'exercice en question est à 6'11)


    Très brièvement le but de l'exercice est de créer une fonction pour extraire tous les élèves de deux tableaux (classes) ayant la moyenne.

    Mon problème est que lorsque je fais (à priori) la même chose que lui, ce ne sont pas tous les élèves de mes deux tableaux qui s'affichent dans la console quand j'appelle la fonction mais seulement le dernier de chaque tableau et en plus si il a la moyenne. C'est-à-dire que dans le code que je copie colle ici le résultat retourné est seulement "jo a la moyenne" (la dernière entrée de mon tableau B et qui a une moyenne supérieure à 10). Par contre, si je mets 14 de moyenne à Loic au lieu de 1 (qui est la dernière entrée de mon tableau A), là ça m'affiche "Loic a la moyenne""Jo a la moyenne".

    Mais je n'arrive pas avoir les autres élèves ayant la moyenne. Quelqu'un aurait une idée de ce qui va pas dans mon code (j'ai essayé de recopié caractère par caractère le code de la vidéo mais j'ai peut-être encore une erreur après m'être 84 fois).

    Merci à vous



    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
    	var classA = [{
    		nom: 'marc',
    		moyenne: 15
    	}, {
    			nom: 'marion',
    			moyenne: 8
    		}, {
    		 	nom: 'antoine',
    			moyenne: 4
    		},{
    			nom:'sophie',
    			moyenne : 17
    		},{
    			nom:'loic',
    			moyenne:1
    		}]
    	var	classB = [{
    		nom: 'fred',
    		moyenne: 15
    	}, {
    			nom: 'lin',
    			moyenne: 8
    		}, {
    		 	nom: 'jo',
    			moyenne: 11
    		}]
     
     
    		function quiALaMoyenne(eleves){
     
    			for (var i=0; i<eleves.length;i++)
    				var eleve=eleves[i]
    				if (eleve.moyenne>=10){
    				console.log (eleve.nom + ' a la moyenne')}
     
    		}
    		quiALaMoyenne(classA)
    		quiALaMoyenne(classB)

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonjour,

    attention aux guillemets...

    Dans ce que tu écris, ta boucle for se termine implicitement juste avant la condition if. C'est-à-dire que eleve correspond à la dernière valeur de eleves[i] (loïc ou jo)... Donc, tout est logique.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function quiALaMoyenne(eleves){
    	for (let i=0;i<eleves.length;i++){
    		var eleve=eleves[i];
    		if (eleve.moyenne>=10){
    			console.log (eleve.nom + ' a la moyenne')
    		}
    	}
    }

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Bonjour,

    Tout simplement parce que tu as oublié les accolades {} de la boucle for, et je pense que tu n'as pas besoin d'utiliser la variable eleve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function quiALaMoyenne(eleves){
    	for (var i=0; i<eleves.length;i++){
    		if (eleves[i].moyenne>=10){
    			console.log (eleves[i].nom + ' a la moyenne');
                    }
     	}
    }
    Oupss.. je n'ai pas vu la réponse de javatwister...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    autre
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autre
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Oh yes, merci les gars, je sais pas comment j'ai pas pu le voir avec le nombre de fois où je me suis relu...

    Merci de votre aide en tout cas, c'est tellement chouette quand on débute et qu'on est bloqué sans savoir dans quelle direction chercher une solution !!

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    Bonjour,
    Tout simplement parce que tu as oublié les accolades {}
    Oui, voilà le bon mot Faut que j'arrête de faire plusieurs choses en même temps

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Oui javatwister, tu n'es pas le seul, parfois ça m'arrive aussi d'inventer les mots

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

Discussions similaires

  1. [3.x] Retour d'un formulaire non conforme
    Par steph44470 dans le forum Symfony
    Réponses: 7
    Dernier message: 10/04/2018, 13h32
  2. Fonction retour erreur non définie
    Par nO_life dans le forum jQuery
    Réponses: 1
    Dernier message: 03/06/2014, 20h06
  3. Appel non conforme d'une fonction membre non static
    Par kryptong dans le forum Débuter
    Réponses: 3
    Dernier message: 16/04/2012, 17h00
  4. [Tableaux] Retour non conforme
    Par Mister Nono dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2005, 12h06
  5. Liste deroulante et VALUE non conforme a la realité
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/05/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