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
Réponse acceptée

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.

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