Exercice 20/31

Soit la variable ecran qui contient un tableau ordonné.

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

  • d'une boucle for avec la variable i comme itérateur;
  • d'une condition if pour tester si chaque élément du tableau est considéré comme "false";
  • alert() pour afficher les éléments considérés comme "false";
  • cliquez sur "Soumettre ma réponse".

Leçon 20/31

Exercice de rappel pour afficher que les propriétés évaluées à "false" dans un tableau ordonné.

Commentaires les mieux notés

  • veronique.nollet

    Bonjour, j'ai le message suivant : Avez-vous bien affiché les éléments demandés avec alert() ? Help please

  • florent.portail-91

    voici mon code et il me demande si j'ai bien afficher ce qu'il fallait dans alert() mais j'ai mis i , ou est le problème : var i; var longueur = ecran.length; for (i=0; i<longueur; i++) { if (!i) { alert(ecran[i]); } }

  • mathieu.finocchiaro

    pb resolu apres avoir revu les chapitres necessaire, autant pour moi

  • pascal-ds

    j'obtiens le message "Avez-vous bien affiché les éléments demandés avec alert() ?" L'instruction alert concerne bien un élément du tableau. En revanche ce que je ne capte pas bien, c'est la façon d'exprimer la condition. Si j'écris ecran[i] === false, est ce que je ne dois pas m'attendre à ce que alert me renvoie 'false' ?

76 Commentaires

  • veronique.nollet

    veronique.nollet

    Bonjour, j'ai le message suivant : Avez-vous bien affiché les éléments demandés avec alert() ? Help please

    le 07/05/2018 à 16h42

  • mram

    mram Administrateur

    Bonjour, attention ce que vous vérifiez dans la condition n'est pas bon. Et n'oubliez pas d'indenter le code dans la boucle.

    le 14/05/2018 à 02h05

  • florent.portail-91

    florent.portail-91

    voici mon code et il me demande si j'ai bien afficher ce qu'il fallait dans alert() mais j'ai mis i , ou est le problème : var i; var longueur = ecran.length; for (i=0; i<longueur; i++) { if (!i) { alert(ecran[i]); } }

    le 24/08/2018 à 17h31

  • mram

    mram Administrateur

    Ligne 8 vous ne vérifiez pas le bon élément dans la condition.

    le 05/09/2018 à 19h34

  • mathieu.finocchiaro

    mathieu.finocchiaro

    pb resolu apres avoir revu les chapitres necessaire, autant pour moi

    le 15/12/2016 à 16h26

  • pascal-ds

    pascal-ds

    j'obtiens le message "Avez-vous bien affiché les éléments demandés avec alert() ?" L'instruction alert concerne bien un élément du tableau. En revanche ce que je ne capte pas bien, c'est la façon d'exprimer la condition. Si j'écris ecran[i] === false, est ce que je ne dois pas m'attendre à ce que alert me renvoie 'false' ?

    le 31/08/2016 à 10h05

  • pascal-ds

    pascal-ds

    au passage, que peut être un élément false d'un tableau ? une case vide ?

    le 31/08/2016 à 10h21

  • pascal-ds

    pascal-ds

    ah j'ai trouvé... il faut écrire !ecran[id]... mais en quoi ecran[id] === false n'est pas correct ? à moins que ce ne soit pas ce qu'attend le script de correction...

    le 31/08/2016 à 10h50

  • mram

    mram Administrateur

    Félicitation ! Au fil des exercices Javascript je constate que vous avez la bonne approche et le bon raisonnement d'un point de vue algorithmie, avec vos erreurs vous vous posez les bonnes questions et ça paye, c'est bien !!

    le 31/08/2016 à 13h18

  • veronicalavroff

    veronicalavroff

    Quel est le bon code svp?

    le 09/08/2016 à 21h32

  • mram

    mram Administrateur

    Oui l'instruction concerne bien un élément du tableau. Pour savoir ce qui est considéré comme "false" en JS regardez ceci : http://i.stack.imgur.com/35MpY.png

    le 31/08/2016 à 13h20

  • mram

    mram Administrateur

    Après utiliser "ecran[id] == false" n'est pas optimal si utilisé dans un if(). Rappelez-vous que une condition if() est une expression booléenne par nature. En effet, if(expression) vérifie si "expression" est vrai et exécute le code qui suit si c'est le cas. Donc faire if(expression == false) revient à dire si il est vrai que expression est faux, c'est un non sens. Il suffit donc de faire if(!expression) qui revient à dire si expression est fausse : c'est plus logique ainsi et c'est à ça que sert l'opérateur "!".

    le 31/08/2016 à 13h52

  • mram

    mram Administrateur

    "ecran[id] === false" n'est pas correct car ça vérifie que l'élément du tableau doit avoir une valeur "false" (voir mon lien ci-dessus) ET aussi de type booléen. Or ce n'est pas forcément le cas de l'élément du tableau : une chaîne vide "" est considérée comme false mais reste de type "string" et non "booléen".

    le 31/08/2016 à 13h39

  • mathieu.finocchiaro

    mathieu.finocchiaro

    ou peut on avoir les corrections.. je rame vraiment.

    le 15/12/2016 à 16h13

  • pascal-ds

    pascal-ds

    c'est sur. C'est comme en français, les doubles négations compliquent la compréhension de la phrase.

    le 01/09/2016 à 09h36

  • mram

    mram Administrateur

    Ligne 2 inutile, ce n'est pas demandé dans l'énoncé ... Et ligne 3 c'est ecran.length qu'il faut utiliser.

    le 11/08/2016 à 00h24

  • antho.lau

    antho.lau

    Une solution ?

    le 13/02/2017 à 18h45

  • patricerameaux

    patricerameaux

    avez-vous bien ecrit la structure de la boucle for ? il me semble que oui : merci de commenter, j'ai vraiment besoin de votre validation

    le 13/10/2016 à 15h29

  • mram

    mram Administrateur

    Pas de ";" ligne 1 et pas de "!" ligne 5

    le 14/02/2017 à 01h41

  • bretel.val

    bretel.val

    J'avoue avoir un peu de mal ici

    le 10/05/2017 à 11h10

  • mram

    mram Administrateur

    Toujours une indentation en trop lignes 2 à 7.

    le 17/10/2016 à 00h19

  • mram

    mram Administrateur

    Une boucle "for" ne s'écrit pas comme ça, revoyez l'exercice sur la boucle "for" ça vous aidera. Et n'oubliez pas que la boucle sert à parcourir les éléments d'un tableau un par un en utilisant la variable "i" comme itérateur.

    le 15/05/2017 à 13h28

  • bretel.val

    bretel.val

    J'ai revu la forme, le message suivant s'affiche "Avez-vous bien affiché les éléments demandés avec alert() ?", il doit y avoir un problème dans la structure de mon code mais je n'ai aucune idée de quoi.

    le 15/05/2017 à 23h04

  • antho.lau

    antho.lau

    Bonsoir, je ne comprend plus du tout vos exercices. Pouvez-vous nous fournir une correction avec des explications ? Merci.

    le 01/02/2017 à 22h32

  • mram

    mram Administrateur

    Ligne 4, le "if" doit vérifier si chaque élément du tableau "ecran" est considéré comme "faux". Si c'est le cas ligne 6 on affiche l'élément en question à chaque itération de la boucle. Revoyez comment on parcoure les éléments d'un tableau.

    le 17/05/2017 à 22h05

  • mram

    mram Administrateur

    Ligne 5, pourquoi mettre "+ false".

    le 03/02/2017 à 00h12

  • rachid

    rachid

    Je n'y comprend plus rien. Mon code parait correcte mais sans résultat... for (i = 0; i < ecran.length; i++); { if (!ecran[i]); { alert(!ecran[i]); } }

    le 22/12/2017 à 20h59

  • mram

    mram Administrateur

    Bonjour, pourquoi mettre l'opérateur ! dans alert() ?

    le 23/12/2017 à 17h43

  • daviwys

    daviwys

    Bonjour, mon code est correcte. je l'ai testé en local (en ajoutant en 1ère ligne : var ecran =['plat','','tube'];), mais ici j'ai un message me disant"Avez-vous déclaré les variables demandés ?"

    le 21/09/2017 à 23h08

  • mram

    mram Administrateur

    Bonjour, il ne faut pas oublier de déclarer la variable "i".

    le 22/09/2017 à 18h46

  • chung.francois-53

    chung.francois-53

    je ne vois pas ou est le problème dans mon code

    le 11/03/2019 à 18h54

  • meriam

    meriam Administrateur

    il faut déclarer le mot clé var au moment de la déclaration de la boucle.

    le 12/03/2019 à 11h08

  • helene.patat-87

    helene.patat-87

    Bonjour, est-ce que mon code est correct car je ne peux pas le soumettre. Merci par avance.

    le 03/05/2018 à 22h29

  • mram

    mram Administrateur

    Bonjour, je ne peux pas vous dire je ne vois pas vos essais vu que vous ne pouvez pas valider. J'ai essayé de mon côté l'exercice fonctionne.

    le 04/05/2018 à 07h54

  • mram

    mram Administrateur

    Mettez votre code en commentaire, je pourrai vous aiguiller.

    le 04/05/2018 à 07h55

  • nkeshimanabrice-37

    nkeshimanabrice-37

    pouvez-vous me corriger on me dit qu'une boucle for est necessaire alors que je l'ai mis...

    le 13/12/2018 à 08h40

  • meriam

    meriam Administrateur

    Déclarez la variable i au niveau de la boucle. for ( var i = 0; i < ecran.length; i++)

    le 13/12/2018 à 14h28

  • foucvb

    foucvb

    Je ne comprends pas mon erreur. Pas facile les tableaux : for (i = 0; !ecran[i]; i++) {if (!ecran[i]) { alert(!ecran[i]);} }

    le 14/11/2017 à 14h38

  • mram

    mram Administrateur

    Bonjour, dans votre dernier essai, c'est le contenu de alert() qui n'est pas bon. On souhaite afficher l'élément du tableau en cours d'itération dans la boucle.

    le 16/11/2017 à 18h25

  • salamanders.officiel-69

    salamanders.officiel-69

    1 heure que je suis dessus et toujours une erreur de structure de boucle, ça me rend fou

    le 07/07/2018 à 00h05

  • mram

    mram Administrateur

    Bonjour, indentez la ligne 5 et ça devrait être bon vu que vous faites la bonne vérification dans le "if" désormais.

    le 09/07/2018 à 03h52

  • daviwys

    daviwys

    Je ne comprends pas. Je peux avoir la solution SVP ?

    le 22/09/2017 à 22h24

  • mram

    mram Administrateur

    Bonjour, il ne faut pas mettre "== false" mais utiliser la première façon que vous avez tenté. Et il ne fallait pas mettre juste alert(i) car "i" correspond à l'indice du tableau.

    le 25/09/2017 à 17h24

  • aymoh-14

    aymoh-14

    ??erreur(s) : Erreur interne : Veuillez passer à l'exercice suivant, un administrateur corrigera celui là dès que possible, merci.

    le 13/12/2018 à 14h55

  • meriam

    meriam Administrateur

    Il s'agit d'un tableau ordonné, donc pour afficher un élément mettez alert (ecran[id]) . C'est pas le meme cas avec l'autre exo qui contient un tableau assiciatif)

    le 13/12/2018 à 15h14

  • nabila.mrad

    nabila.mrad

    bonjour, je n'arrive pas a vérifier avec alert j'ai utilisé la length mais ça ne marche pas

    le 28/11/2017 à 15h54

  • mram

    mram Administrateur

    Bonjour, vous avez essayé pas mal de choses. Mais l'erreur initiale est ligne 2. Dans le 2ème paramètre il faut indiquer la longueur du tableau "ecran". Et dans alert(), il faut simplement afficher l'élément du tableau en cours d'itération.

    le 30/11/2017 à 23h59

  • lienmontage

    lienmontage

    Je comprends plus rien, j'ai l'impression que mon ame a était aspiré .

    le 25/03/2018 à 16h23

  • mram

    mram Administrateur

    Bonjour, ajoutez juste un espace après "if" et ça devrait être bon.

    le 28/03/2018 à 06h01

  • mram

    mram Administrateur

    Le code en lui-même est correct et fonctionne, mais on vérifie la disposition du code aussi pour ne pas que vous écriviez n'importe comment.

    le 28/03/2018 à 06h01

  • armand1807

    armand1807

    aidez moi... je comprend pas

    le 16/08/2017 à 15h09

  • mram

    mram Administrateur

    Ligne 1; revoyez la structure de la boucle "for". Dans le for() il faut 3 éléments. 1 : déclarer la variable "i" et la mettre à zéro. 2 : récupérer la longueur du tableau "ecran" avec la propriété que vous avez déjà vu. 3 : incrémenter "i"

    le 16/08/2017 à 15h15

  • armand1807

    armand1807

    c'est fait mais dans alert il y a un soucis apparament

    le 16/08/2017 à 16h41

  • mram

    mram Administrateur

    Et oui il ne faut pas oublier l'itérateur [i] :)

    le 17/08/2017 à 15h51

  • armand1807

    armand1807

    c'est bon j'ai réussi !! en relisant les exo et les leçon ;)

    le 16/08/2017 à 17h22

  • mram

    mram Administrateur

    Oui il faut bien comprendre comment on peut lister chaque élément d'un tableau grâce à une boucle et à l'itérateur "i" :)

    le 17/08/2017 à 15h52

  • nacim_H

    nacim_H

    j'obtiens comme message "Erreur(s) : Avez-vous bien écrit la structure "if" ? "

    le 28/08/2018 à 05h45

  • mram

    mram Administrateur

    Essayez en ajoutant un espace après "if" .

    le 06/09/2018 à 05h29

  • nacim_H

    nacim_H

    Bonjour, j'aurai besoin d'un coup de main, je vois pas ou est mon erreur.

    le 13/08/2018 à 04h45

  • mram

    mram Administrateur

    Quel est votre message d'erreur svp ? Ca sera plus facile pour vous aider.

    le 17/08/2018 à 06h01

  • abribat-julie

    abribat-julie

    bonjour, je ne comprend pas ce qu'il faut mettre dans alert()?

    le 08/01/2018 à 11h22

  • mram

    mram Administrateur

    Bonjour, il faut mettre l'élément du tableau que l'on parcours avec la boucle, donc il ne faut pas juste mettre [i] mais ajouter le nom du tableau devant.

    le 12/01/2018 à 01h35

  • nathalie.2080

    nathalie.2080

    bonjour,pouvezvous m'aider?

    le 30/12/2017 à 11h31

  • mram

    mram Administrateur

    Bonjour, la condition dans la boucle n'est pas correcte. Relisez l'instruction correspondante.

    le 31/12/2017 à 19h11

  • mram

    mram Administrateur

    Il vous manque du code dans le deuxième paramètre sur la première ligne.

    le 31/12/2017 à 19h12

  • ヤスミン

    ヤスミン

    Bonjour, j'ai un souci avec alert. Je ne sais pas ce que je dois corriger. Je sais que dans un tableau ordonné for est utilisé avec l'itérateur [i] pour pouvoir parcourir tout le tableau. Je dois mal l'utiliser ou alors il manque quelque chose, pourriez vous m'aidez s'il vous plaît ?

    le 26/09/2017 à 15h10

  • mram

    mram Administrateur

    Bonjour, il faut juste collé le ! à la variable à laquelle il s'applique.

    le 29/09/2017 à 02h05

  • guillaume.b81-47

    guillaume.b81-47

    Bonjour, "la condition de votre boucle est incorrect"...Voici mon code : for (i = 0; i < ecran.length; i++) {if (!ecran[i]){ alert(ecran[i]); } } un peu d'aide serait la bienvenue :)

    le 11/02/2019 à 17h09

  • meriam

    meriam Administrateur

    il vous manque la déclaration du variable i au moment de la déclaration de la boucle.

    le 13/02/2019 à 10h52

  • ヤスミン

    ヤスミン

    Après avoir bien relu votre phrase ""if" doit vérifier si chaque élément du tableau ecran est considérer comme faux" , j'ai compris ce qui n'allait pas ! Merci bien :)

    le 26/09/2017 à 18h43

  • minos.ivan

    minos.ivan

    var i; for (i=0; i < ecran.length ; i++) { if (!i) { alert(ecran[i]); } } <!-- Là je ne comprend vraiment ce que il faut mettre dans 'alert(' et quand je fais F12 il me dit que 'ecran' n'est pas définit ???!!! HELP)-->

    le 27/04/2018 à 23h18

  • mram

    mram Administrateur

    Bonjour, la dernière version de votre code est correcte. Est-ce que vous avez compris finalement ?

    le 29/04/2018 à 04h04

  • prudh.vin.cent-13

    prudh.vin.cent-13

    bonjour, j'ai un problème sur cet exercice. Mon code semble pourtant bon mais j'ai ce message d'erreur qui s'affiche : "Avez-vous bien affiché les éléments demandés avec alert() ?"

    le 17/09/2018 à 17h44

  • mram

    mram Administrateur

    Bonjour, les lignes 1 à 3 sont inutiles.

    le 02/10/2018 à 05h55

  • e.agneray-99

    e.agneray-99

    je ne trouve pas mon erreur, "avez vous bien utilisé la boucle for"

    le 31/08/2018 à 17h01

  • mram

    mram Administrateur

    Lignes 8 et 9, pas besoin de ; à la fin.

    le 06/09/2018 à 06h14

  • molinari.eva

    molinari.eva

    Besoin d'un coup de pouce please !!

    le 23/11/2017 à 15h59

  • mram

    mram Administrateur

    Bonjour, c'est le contenu de alert() qui n'est pas bon. Dans le "if" on vérifie si l'élément du tableau, si c'est le cas on l'affiche dans alert(). Attention également à l'indentation des accolades fermantes.

    le 26/11/2017 à 19h42

  • Nos_ave

    Nos_ave

    @oj.professionnel Même si j'avoue que j'ai un de mal avec JS (pour le moment), je trouve que ça nous met dans le bain directement. Il ne faut pas hésiter à relire les leçons précédentes pour bien comprendre les différents exercices. Et en ce qui concerne la syntaxe, justement il vaut mieux que ça soit stricte car ça habitue directement à ne pas oublier de ";" par exemple surtout quand tu as des milliers de lignes de codes où tu dois chercher une aiguille dans une botte de foin ;). Franchement il vaut mieux que ça soit stricte dès le départ, car erreur est vite arrivée ;)

    le 13/03/2019 à 14h41

  • aymoh-14

    aymoh-14

    ok mais là la variable c'est i donc alert(ecran[i]);

    le 13/12/2018 à 15h24

  • fromentxavier-81

    fromentxavier-81

    20 minutes que je cherchais mon erreur, je l'ai enfin trouvé !

    le 29/12/2018 à 12h50

  • nkeshimanabrice-37

    nkeshimanabrice-37

    merci...

    le 29/03/2019 à 08h22

  • oj.professionnel-33

    oj.professionnel-33

    Les exercices basiques ont des lecons et sont très simples et quand ca se complique , il y a plus rien !? plus d'astuces ,plus de leçon !!! Il faudrai refeléchir à cela non? Avant de combiner plusieurs notions il faudari nous y entrainer .. On ne maitrise pas les algo je pense ici .. De plus l'editeur est des fois precis à la virgule prêt !?? Plus facile à Freecodecamp ..

    le 03/02/2019 à 19h12

  • pzim-34

    pzim-34

    J'AI COMPRIS il faut mettre "var i=0" et non "i=0" dans for(var i=0, i<ecran.length etc...

    le 23/03/2019 à 02h17

  • kaisos-26

    kaisos-26

    Ce bon j'ai trouvé la solution merci!!

    le 13/12/2018 à 13h43

  • ngout-50

    ngout-50

    Bonjour, j'ai encore un message d'erreur 'votre boucle est incorrecte'..var ecran = ['alpha', null, 'gamme', 0, 'delta', false, 'zêta']; var longueur= ecran.length; for (var i=0; i<longueur; i++) { if (!ecran [i]) { alert(ecran[i]); } }

    le 30/03/2019 à 10h14

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Exercice rappel 3</title> <script src="script.js"></script> </head> <body> </body> </html>
var ecran = ['alpha', null, 'gamme', 0, 'delta', false, 'zêta']