Un problème de débutant sur le tuto java script ^^

Par Louis alias le Louilouiticien, il y a 8 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Je suis en train de suivre le cour vidéo sur les fonction et à un moment il nous demande de faire une fonction qui nous dit qui à la moyenne dans deux classe...
Enfin bref mon code à le problème suivant voici le message d’erreur de la console:

Uncaught TypeError: Cannot read property 'noms' of undefined at quiàlamoyenne

Et voici mon code :

<html> <head> <script> var classeA = [{ noms : "marc", moyenne : 15 },{ noms : "marion", moyenne : 8 },{ noms : "antoine", moyenne : 4 }] var classeB = [{ noms : "Louis", moyenne : 11 },{ noms : "Yannis", moyenne : 14 },{ noms : "Olivier", moyenne : 18 },{ noms : "Quentin", moyenne : 12 }] function quiàlamoyenne (eleves){ for (i= eleves.length; i>0 ; i--) var lenoms = eleves[i].noms var note = eleves[i].moyenne if (moyenne >= 10){ console.log(lenoms+" à la moyenne avec "+note) } } console.log("classe A") quiàlamoyenne(classeA) console.log("classe B") quiàlamoyenne(classeB) </script> </head> <body> </body> </html>

Je voudrais juste que l'on m'explique ce que j'ai rater dans le code ^^

Voilà merci d'avance :D

2 réponses

Lartak, il y a 8 ans

Ton problème, c'est que length, donne la taille de ton tableau, soit 3 pour le premier, sauf que dans ce tableau, tu n'as pas d'index 3 puisque son plus grand index est 2, dans ta boucle, il te faut donc remplacer i = eleves.length;par i = (eleves.length - 1); et par conséquent, il te faut également modifier la seconde partie i > 0; par i >= 0;.
Voici un petit exemple.
Par contre, tu devrais éviter les accents dans tes noms de variables/classes/functions.

Louis alias le Louilouiticien, il y a 8 ans

Ah d'accord merci beaucoup pour ta réponce :D
Et promis je met plus jamais d'acent nul par ^^