Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue.
Merci de modifier votre message d'origine en fonction.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Ton block de code est exécuté uniquement si dateVoulue est en dehors des limites de dateMin est dateMax ce qui semble être une erreur (même si c'est possible que ce soit le comportement attendu).
@Aurélien10! effectivement il y a eu un point-virgule oublié dans l'en-tête de la boucle for:
for(var i=0i<=indiceMax;i++)
qui aurait dut être:
for(var i=0; i<=indiceMax; i++)
Mais à mon avis c'est une faute lorsqu'il a copié son code sur le forum car son erreur provient du typage incorrect (NaN) alors que celle-ci aurait dut levait une exception (SyntaxError).
J'imagine que c'est cette instruction qui te renvois la valeur NaN (Not a Number):
var valeur = parseInt(Object.values(dict)[i]);
Pour le vérifier tu peux comme te la conseiller @GaelPitras2 ajouter un console.log
Et vérifier dans la console de développement du navigateur la valeur qui est logger.
Pour que l'on t'aide plus il faut que tu nous montres la définition des variables que tu as utilisé notamment la variable dict qui est utilisé dans l'instruction la plus sensible d'être à l'origine de l'erreur.
var valeur = parseInt(Object.values(dict)[i]);
Tu peux aussi nous montrer comment tu as évaluer la variable indiceMax qui est utiliser dans l'en têtes de la boucle qui détermine le nombre d'itération.
Si tu itère en dehors de la taille du tableau tu obtiendras la valeur undefined (qui représente l'absence de valeur) en faisant une addition entre undefined est un nombre tu obtiendras la constante NaN (qui représente une erreur dans une opération arithmétique).
Une erreur "courante" pourrait être d'avoir oublié de retirer la valeur 1 à la taille de l'itérable au moment où tu évalue indiceMax,
par exemple en faisant quelque chose comme cela:
var indiceMax = Object.values(dict).length;
Avec l'évaluation ci-dessus le problème c'est quand programmation on itère en partant de l'indice 0, donc on s'arrête à l'indice N - 1,
soit la taille - 1 qui sera le dernier élément du tableau, donc indiceMax aurait dut être évaluer de cette façon-là:
var indiceMax = Object.values(dict).length - 1;
suggestion de présentation.
For : valeur calculée dans la boucle = NAN
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Pas d'aide concernant le code par MP, le forum est là pour ça :)
suggestion de présentation.