Exercice 28/31

Soit la variable micmac qui contient un tableau ordonné avec un peu de tout (nombre, texte, etc.).

Dans le fichier "script.js" vous aurez besoin :

  • d'une boucle for avec la variable ì comme itérateur;
  • d'une condition if pour tester si chaque élément du tableau ordonné est un nombre;
  • alert() pour n'afficher que les nombres du tableau;
  • cliquez sur "Soumettre ma réponse".

Leçon 28/31

Exercice de rappel pour récupérer les éléments qui sont des nombres dans un tableau.

Commentaires les mieux notés

  • mram Administrateur

    Oui ça serait juste aussi. Mais isNaN() est surtout utilisé pour faire des vérifications avant des opérations arithmétiques. Car si un des éléments de l'opération est NaN alors le résultat sera forcément NaN aussi, et si on veut éviter ça alors on utilise isNaN() en amont.

  • jenebakone

    bonjour je ne parviens pas à trouver mon erreur.Pourriez vous m'aider?Merci

  • mathieu.finocchiaro

    bonjour, mon code est accepté mais j'ai malgré tout un doute for (i=0; i<micmac.length; i++) { if (micmac = "0") { alert(micmac); } } Que je mette "0",ou bien "1", etc ou 0, ou 1, etc, dans le if, cela fonctionne qd mm. Etrange?

  • veronicalavroff

    Quel est le bon code svp?

65 Commentaires

  • mram

    mram Administrateur

    Oui ça serait juste aussi. Mais isNaN() est surtout utilisé pour faire des vérifications avant des opérations arithmétiques. Car si un des éléments de l'opération est NaN alors le résultat sera forcément NaN aussi, et si on veut éviter ça alors on utilise isNaN() en amont.

    le 15/12/2016 à 11h29

  • jenebakone

    jenebakone

    bonjour je ne parviens pas à trouver mon erreur.Pourriez vous m'aider?Merci

    le 29/10/2016 à 11h18

  • mathieu.finocchiaro

    mathieu.finocchiaro

    bonjour, mon code est accepté mais j'ai malgré tout un doute for (i=0; i<micmac.length; i++) { if (micmac = "0") { alert(micmac); } } Que je mette "0",ou bien "1", etc ou 0, ou 1, etc, dans le if, cela fonctionne qd mm. Etrange?

    le 15/12/2016 à 19h11

  • veronicalavroff

    veronicalavroff

    Quel est le bon code svp?

    le 10/08/2016 à 02h03

  • mram

    mram Administrateur

    Aucun problème avec alert() (ligne 5), mais ligne 3 il faut utiliser "typeof". Là vous vérifiez si l'élément du tableau en cours d'itération contient le texte "number", alors qu'on souhaite vérifier que c'est une variable de type "number", donc un nombre (et pas du texte).

    le 28/11/2016 à 15h55

  • mickaelquintin

    mickaelquintin

    Bonjour, j'ai pour message d'erreur : AVEZ-VOUS BIEN AFFICHÉ LES ÉLÉMENTS DEMANDÉS AVEC ALERT() ? je ne comprends pas mon erreur. Y a-t-il un problème avec la commande alert ?

    le 25/11/2016 à 15h26

  • mram

    mram Administrateur

    Les lignes 1 et 2 sont inutiles. Et ligne 5 il faut utiliser typeof

    le 31/10/2016 à 18h38

  • bsmeyers84

    bsmeyers84

    j'ai fait la correction j'ai tes le même problème: "AVEZ-VOUS BIEN AFFICHÉ LES ÉLÉMENTS DEMANDÉS AVEC ALERT() ?"

    le 30/08/2016 à 16h08

  • pascal-ds

    pascal-ds

    bonjour, message "Avez-vous bien affiché les éléments demandés avec alert() ? je ne vois pas ce qui cloche...

    le 01/09/2016 à 11h51

  • pascal-ds

    pascal-ds

    oops...corrigé ça fonctionne.

    le 01/09/2016 à 11h53

  • jenebakone

    jenebakone

    j'avais utilisé typeof

    le 01/11/2016 à 09h33

  • mram

    mram Administrateur

    Vous avez raison d'avoir un doute en effet. Ligne 3, il faut utiliser "typeof" pour vérifier le type de la valeur contenue dans l'élément du tableau en cours d'itération.

    le 18/12/2016 à 18h33

  • mram

    mram Administrateur

    Il n'y a pas besoin de déclarer une variable longueur, pas demandé dans l'énoncé. Pas besoin de déclarer la variable i 2 fois (ligne 1 inutile). Et ligne 3 c'est micmac.length qu'il faut utiliser ...

    le 11/08/2016 à 00h20

  • mram

    mram Administrateur

    Attention typeof renvoi le type de la variable sous forme de texte ( "string" et non string ...) donc il faut comparer à une chaine de caractère. Là vous comparez à une variable "number" qui en plus n'existe pas.

    le 02/11/2016 à 20h55

  • mram

    mram Administrateur

    @bretel.val : il faudrait un espace après "if" ligne 3 et c'est "typeof" et non "typeOf"

    le 07/06/2017 à 13h35

  • mram

    mram Administrateur

    @jovidal : ligne 3 on souhaite vérifier si micmac[i] (qui représente l'élément du tableau pointé à chaque itération) est de type "number". Et ligne 5 il manque l'itérateur [i]

    le 07/06/2017 à 13h37

  • fumey.claire

    fumey.claire

    Pouvez vous m'aider s'il vous plait ? Merci .

    le 23/12/2016 à 20h04

  • bsmeyers84

    bsmeyers84

    voici le messagerie j'ai après avoir validé l'exercice: "AVEZ-VOUS BIEN AFFICHÉ LES ÉLÉMENTS DEMANDÉS AVEC ALERT() ?"

    le 22/08/2016 à 17h38

  • Trov

    Trov

    Bonjour, même problème que les autres Avez-vous bien affiché les éléments demandés avec alert() ...Pas moyen de mettre le doigt sur le petit truc qui ne va pas...

    le 12/10/2016 à 12h07

  • mram

    mram Administrateur

    Ligne 3, il faut vérifier le type de l'élément du tableau en cours d'itération dans la boucle et non pas le type du tableau seulement. Et même chose pour la ligne 5.

    le 26/12/2016 à 11h13

  • mram

    mram Administrateur

    Ligne 1, il faut comparer i avec la longueur du tableau.

    le 23/08/2016 à 00h27

  • bretel.val

    bretel.val

    Cela ne marche toujours pas

    le 07/06/2017 à 21h25

  • bsmeyers84

    bsmeyers84

    correction faite idem

    le 23/08/2016 à 16h19

  • josepha.ferret

    josepha.ferret

    Bonjour, j'ai pour message d'erreur : AVEZ-VOUS BIEN AFFICHÉ LES ÉLÉMENTS DEMANDÉS AVEC ALERT() ? je ne comprends pas mon erreur. Y a-t-il un problème avec la commande alert ?

    le 13/11/2016 à 14h04

  • josepha.ferret

    josepha.ferret

    j'ai trouvé l'astuce, une erreur (de ma part) d'interprétation de l'énoncé. Merci

    le 13/11/2016 à 14h20

  • patricerameaux

    patricerameaux

    message : unexpected token ) syntax error : je ne comprends pas

    le 14/10/2016 à 14h53

  • patricerameaux

    patricerameaux

    erreur : "syntax error : unexpected token )" : je ne vois pas

    le 14/10/2016 à 15h10

  • mram

    mram Administrateur

    Oui dans cet exercice on demande juste d'afficher les éléments en question et non de les ajouter au tableau "result" avec push().

    le 14/11/2016 à 18h31

  • mram

    mram Administrateur

    @Trov : ça vient de l'exercice qui bug, pas de votre code qui est correct.

    le 16/10/2016 à 23h44

  • mram

    mram Administrateur

    @patricerameaux : pas besoin de parenthèses avec typeof. Et une indentation en trop lignes 2 à 7.

    le 16/10/2016 à 23h45

  • mram

    mram Administrateur

    Ah mais ligne 1 il faut utiliser la propriété .length sur "micmac" ...

    le 12/06/2017 à 14h55

  • Damien

    Damien

    Est-ce que l'utilisation de isNaN ne serait pas plus efficace (dans le sens "éviter des erreurs") ? J'avais fait un if (!isNaN(micmac[i])). Est-ce que ça fonctionnerait ?

    le 13/12/2016 à 13h19

  • bretel.val

    bretel.val

    Avez-vous bien écrit la structure "if" ?

    le 02/06/2017 à 15h07

  • jovidal

    jovidal

    Je bloque pour retranscrire sous forme de code la phrase "Si mon curseur pointe un nombre alors je l'affiche .. (Instruction 3) la je pense que je dis plus: si le caractère de mon curseur, alors je l'affiche (ce qui, on est d'accord, ne veux rien dire ..) Mon code pour le moment: for (i=0; i<micmac.length; i++) { if (typeof micmac[i] ) { alert(micmac); } } Help :(

    le 03/06/2017 à 12h41

  • triplaxs

    triplaxs

    Avez-vous bien affiché les éléments demandés avec alert() ?for (var i = 0; i < micmac.length; i++) { if (typeof micmac[i]==number) { alert(micmac[i]); } }

    le 02/09/2017 à 05h03

  • mram

    mram Administrateur

    Dans le if il faut mettre number entre guillemet, sinon pour Javascript c'est le nom d'une variable, mais elle n'existe pas évidemment.

    le 06/09/2017 à 10h37

  • eva-85

    eva-85

    merci Mram

    le 01/03/2018 à 10h18

  • armand1807

    armand1807

    eh oui je le sais pourtant ^^ c'est bon exo validé ;)

    le 22/08/2017 à 13h40

  • Angie

    Angie

    Bonjour, qu'est-ce qu'il ne va pas dans mon code, svp ?

    le 15/11/2017 à 17h43

  • mram

    mram Administrateur

    Bonjour, et oui attention à la différence entre = et == . Le premier est un opérateur d'affectation alors que le deuxième est un opérateur de comparaison.

    le 16/11/2017 à 18h45

  • Angie

    Angie

    En fait, c'est bon... au bout d'une heure j'ai remarqué que j'avais mis un O à la place d'un 0... -_-

    le 15/11/2017 à 18h25

  • mram

    mram Administrateur

    Oui il y avait ça aussi. Mais comme j'ai dit, attention à la différence aussi entre = et == .

    le 16/11/2017 à 18h46

  • j_senechal-19

    j_senechal-19

    Bonjour y avait-il une autre possibilité pour valider cet exercice en faisant :var i; for (i = 0; i < micmac.length; i++) { if (!isNaN(micmac[i]) { alert(micmac[i]); } }

    le 21/01/2018 à 22h34

  • mram

    mram Administrateur

    Bonjour, oui ça revient à faire la même vérification, bien vu :)

    le 22/01/2018 à 12h02

  • nacim_H

    nacim_H

    J'obtiens comme message: "Erreur(s) : Unexpected token ;"

    le 28/08/2018 à 05h46

  • mram

    mram Administrateur

    L'erreur se trouve ligne 1.

    le 05/09/2018 à 06h25

  • belespoir38

    belespoir38

    for (i=0; i<micmac.length; i++) if(micmac[i]=number) { alert (micmac[i]); } qu'en pensez-vous ? ou bien if (typeof i=number)....

    le 13/01/2018 à 16h25

  • mram

    mram Administrateur

    Bonjour, attention à l'indentation du code dans la boucle.

    le 16/01/2018 à 19h50

  • belespoir38

    belespoir38

    for (var i=0; i<micmac.length; i++) { if (typeof micmac[i]=="number") { alert(micmac[i]); } } 2 questions : pourquoi number entr guillement n'est-il pas considéré comme du texte ? et si je pointe un element qui a un indice de cette façon micmac[i] et que je demande si cet indice est un nombre, ça ne marche pas et que donc je dois inscrire typeof

    le 13/01/2018 à 16h36

  • mram

    mram Administrateur

    Bonjour, 1 : typeof retourne le type d'une variable sous forme d'une chaîne de texte. 2 : j'ai pas tout compris. Par contre attention à l'indentation de votre code dans la boucle.

    le 17/01/2018 à 18h53

  • alexismoquet

    alexismoquet

    bjr, je bloque, est-ce bon ? sur la console, il me passe tous les éléments du tableau en revue mais pas uniquement les nombres. Merci de votre aide.

    le 19/10/2017 à 10h09

  • mram

    mram Administrateur

    Bonjour, oui votre code est correct à priori. Normalement vous pouvez valider l'exercice.

    le 20/10/2017 à 16h55

  • alexismoquet

    alexismoquet

    ok c'était encore la faute du ";" :-(

    le 19/10/2017 à 14h22

  • philgd28

    philgd28

    Bonsoir, pourriez-vous m'aider je bloque complètement, je ne sais plus comment tourner le code, pourriez-vous me donner un indice svp.

    le 03/08/2017 à 20h59

  • mram

    mram Administrateur

    Bonjour, vous avez fini par trouver, bien vu !

    le 05/08/2017 à 11h06

  • armand1807

    armand1807

    pareil trouvé !! mais j'ai une question : pour vérifier si chaque élément est un nombre est ce qu'il faut mettre entre guillemets number à typeof ou pas ? dans les 2 cas l'exo est validé

    le 17/08/2017 à 12h05

  • mram

    mram Administrateur

    Ah non votre code n'est pas bon, pour vérifier le type d'une variable, par exemple la variable "toto", il faut faire : typeof toto = "number" (si on veut vérifier que le type de toto est number).

    le 17/08/2017 à 20h06

  • philgd28

    philgd28

    Yes... j'ai trouvé, un éclair de lucidité...

    le 04/08/2017 à 12h32

  • mram

    mram Administrateur

    Oui c'est ça. Dans le "if" il faut lire de gauche à droite comme une phrase classique : si ça n'a pas de sens c'est que le code n'est pas correct. Là on comprend mieux.

    le 05/08/2017 à 11h11

  • triplaxs

    triplaxs

    Bonjour, mon code for (i=0; i<micmac.length; i++) { if (typeof micmac[i]==number) { alert(micmac[i]); } }pourriez-vous me donner un indice svp.

    le 27/08/2017 à 16h16

  • mram

    mram Administrateur

    Bonjour, il faut mettre "number" ligne 3 comme vous l'aviez fait initialement en fait. Et il faut remettre typeof aussi. Le code d'avant était plus juste que vos derniers essais.

    le 30/08/2017 à 14h00

  • eva-85

    eva-85

    Bonjour, je ne vois pas ce qui cloche dans mon code , pourriez-vous m'aider s'il vous plait ? for (var i = 0;i < micmac.length;i++) { if (!isNaN(micmac[i])) { alert(micmac[i]); } }

    le 22/02/2018 à 15h11

  • mram

    mram Administrateur

    Bonjour, essayez en faisant autrement, par exemple en vérifiant si c'est un nombre avec typeof par exemple.

    le 25/02/2018 à 01h27

  • triplaxs

    triplaxs

    Bonjour, mon code est for (var i = 0; i < micmac.length; i++) { if (typeof micmac[i]==Number) { alert(micmac[i]); } }pourriez-vous me donner un indice svp.

    le 27/08/2017 à 20h09

  • hantute.kevin-100

    hantute.kevin-100

    "alert() pour N'afficher que les nombres du tableau;" :)

    le 23/02/2018 à 10h11

  • mram

    mram Administrateur

    Merci c'est corrigé :)

    le 25/02/2018 à 01h34

  • YD.

    YD.

    Bonjour quel est le probleme de mon code ? for(var i = 0; i < micmac.length; i++); { if (typeof micmac[i] == "number") { alert(micmac[i]); } }

    le 25/10/2017 à 12h04

  • YD.

    YD.

    ARG un ";" en trop !!

    le 25/10/2017 à 12h10

  • mram

    mram Administrateur

    Bonjour, oui il faut faire attention à la syntaxe :)

    le 25/10/2017 à 15h37

  • armand1807

    armand1807

    ah.. j'ai essayer mais ça marche plus :(

    le 18/08/2017 à 10h20

  • armand1807

    armand1807

    dès que je rajoute typeof sa plante...

    le 18/08/2017 à 10h24

  • mram

    mram Administrateur

    Ligne 3 , Javascript s'attend à ce qu'il y ait quelque chose après le signe "=" . Et d'ailleurs "=" n'est pas bon. Il faut utiliser l'opérateur de comparaison, ça c'est l'opérateur d'affectation.

    le 22/08/2017 à 12h37

  • dai.clement-66

    dai.clement-66

    Ce n'est pas grand chose mais : "Pour vérifier une égamité, utilisez l'opérateur ===."

    le 15/03/2019 à 18h44

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Exercice rappel 11</title> <script src="script.js"></script> </head> <body> </body> </html>
var micmac = ['tokyo', 42, true, 3.14, ['hello', 'world']]