Exercice 6/11

Soit texte la variable qui contient la chaîne de caractère et la variable position qui contient la position du caractère souhaité dans la chaîne.

Dans le fichier "script.js" :

  • créez la fonction trouve avec deux arguments txt puis pos;
  • la fonction doit retourner le caractère souhaité (voir astuce);
  • cliquez sur "Soumettre ma réponse".

Leçon 6/11

Maintenant vous allez faire une série d'exercices pratiques pour manipuler des chaînes de caractères et des tableaux mais cette fois-ci au sein d'une fonction qui devra retourner le résultat souhaité.

Dans cet exercice il faut faire une fonction qui récupère un caractère dans une chaîne de texte.

charAt()

Commentaires les mieux notés

  • patricerameaux

    je n'ai pas accès à l'astuce !!!

  • bsmeyers84

    AVEZ-VOUS UTILISE LES 2 ARGUMENTS DANS LA FONCTION?

  • jovidal

    J'ai réussi grâce au commentaire mais je ne comprends pas: Comment je sais que c'est pos que je dois mettre a charAt() c'est expliqué ou ? | Et dans cette ligne la: recup = trouve(texte,position) comment je sais que c'est texte et position a mettre ??

  • mathieu.finocchiaro

    var recup; function trouve(txt,pos) { recup = txt.charAt(pos); return recup; } trouve("bla",2); alert(recup); AVEZ VOUS UTILISE LES DEUX ARGUMENTS DANS LA FONCTION...

47 Commentaires

  • patricerameaux

    patricerameaux

    je n'ai pas accès à l'astuce !!!

    le 17/10/2016 à 14h55

  • bsmeyers84

    bsmeyers84

    AVEZ-VOUS UTILISE LES 2 ARGUMENTS DANS LA FONCTION?

    le 26/08/2016 à 17h46

  • jovidal

    jovidal

    J'ai réussi grâce au commentaire mais je ne comprends pas: Comment je sais que c'est pos que je dois mettre a charAt() c'est expliqué ou ? | Et dans cette ligne la: recup = trouve(texte,position) comment je sais que c'est texte et position a mettre ??

    le 04/06/2017 à 10h21

  • mathieu.finocchiaro

    mathieu.finocchiaro

    var recup; function trouve(txt,pos) { recup = txt.charAt(pos); return recup; } trouve("bla",2); alert(recup); AVEZ VOUS UTILISE LES DEUX ARGUMENTS DANS LA FONCTION...

    le 16/12/2016 à 14h57

  • mram

    mram Administrateur

    Oui c'est bien ça.

    le 31/10/2016 à 18h30

  • jenebakone

    jenebakone

    c'est bon j'ai enfin trouvé mon erreur.

    le 29/10/2016 à 22h47

  • mram

    mram Administrateur

    Même observation que précédemment par rapport à l'usage de "recup".

    le 18/12/2016 à 18h38

  • jenebakone

    jenebakone

    bonsoir on me demande si j'ai bien ajouté les 2 arguments dans la fonction.Ou se situe mon erreur?Merci

    le 29/10/2016 à 21h29

  • y.redjah

    y.redjah

    voici mon code il fonctionne mais l'exercice ne se valide pas function trouve(txt, pos) { return txt.charAt(pos); } recup = trouve("Yannis",4); alert(recup); j'ai l'erreur recup ne contient pas la valeur attendu avez vous bien utilisé recup pour exécuter la fonction

    le 28/04/2017 à 13h02

  • daminoweb

    daminoweb

    Je ne comprend pas l'instruction 4 "exécutez la fonction tout en l'attribuant à la variable recup;" Mon code fonctionne mais n'est pas validé par le correcteur. var recup; function trouve (txt, pos) { recup = txt.charAt(pos); return recup; } trouve("Damien",2); alert(recup);

    le 30/11/2016 à 14h35

  • fumey.claire

    fumey.claire

    je ne trouve pas la solution, pouvez-vous m'aider? merci !

    le 21/12/2016 à 08h36

  • mram

    mram Administrateur

    En fait, dans la fonction il faut juste faire "return txt..." C'est en dehors de la fonction qu'il faut faire "recup = trouve()" pour ensuite faire alert(recup)

    le 30/11/2016 à 16h55

  • mram

    mram Administrateur

    Oui, c'est juste que (ligne 5) vous mettez des valeurs brutes de votre choix alors qu'il faut utiliser les variables qu'on vous propose (voir instructions) et qui contiennent donc du texte pour l'une et un nombre pour l'autre. Sinon le code est correct.

    le 28/04/2017 à 15h55

  • y.redjah

    y.redjah

    c'est bon j'ai trouvé ^^

    le 28/04/2017 à 16h23

  • mram

    mram Administrateur

    Même observation que précédemment par rapport à l'usage de "recup".

    le 22/12/2016 à 12h57

  • ctt

    ctt

    S'il est encore question de l'usage de "recup", pouvez-vous m'indiquer ce qui ne va pas dans mon code ? Merci d'avance

    le 22/12/2016 à 13h35

  • mram

    mram Administrateur

    Ligne 6, pas besoin d'écrire ses propres paramètres, il faut juste utiliser les 2 variables prévues à cet effet.

    le 26/12/2016 à 10h49

  • Janov

    Janov

    Bonjour, un message d'erreur m'indique "CANNOT READ PROPERTY 'INDEXOF' OF UNDEFINED", le code semble pourtant bien fonctionner et l'énoncé ne mentionne pas l'utilisation de "indexOf()". Merci d'avance pour votre aide.

    le 30/05/2016 à 19h30

  • mram

    mram Administrateur

    indexOf() est utilisé dans le script de correction. C'est corrigé et ce sera mis à jour prochainement. Merci pour le retour !

    le 30/05/2016 à 19h31

  • mram

    mram Administrateur

    Vous avez vu charAt(), ici c'est à vous de vous rappeler qu'il faut utiliser cette fonction qui a déjà été vu. C'est un rappel donc. Et au moment d'appeler et d'exécuter la fonction (ligne 6) il faut mettre en paramètres les variables proposées (texte, position), qui prennent respectivement la place de txt et pos au sein de la fonction.

    le 08/06/2017 à 10h52

  • cdezandee

    cdezandee

    var recup; function trouve (txt,pos) { return recup = txt.charAt(pos); } recup = trouve(texte,position); alert(recup);

    le 15/11/2016 à 12h03

  • mram

    mram Administrateur

    Idem ici, ligne 4 "return = ..." suffit car ligne 6 vous affectez le résultat de la fonction à "recup".

    le 16/11/2016 à 19h39

  • bretel.val

    bretel.val

    Ça m'affiche "Syntaxerror : unexpected identifier" mais je crois pourtant avoir respecté les consignes.

    le 12/06/2017 à 22h02

  • mram

    mram Administrateur

    Pas de ; après "return" ligne 3...

    le 26/08/2016 à 19h35

  • patricerameaux

    patricerameaux

    je ne comprends pas l'énnoncé : quel est le lien entre txt, pos, et texte et position ? cela me paraît très fumeux !

    le 18/10/2016 à 09h49

  • mram

    mram Administrateur

    Il y a juste "charAt()" dans l'astuce.

    le 18/10/2016 à 09h49

  • mram

    mram Administrateur

    "txt" et "pos" sont les noms des arguments à mettre quand vous déclarez / construisez la fonction. Quand vous exécutez la fonction la valeur qui leur sera affectée sera celle que vous indiquerez à ce moment : c'est à dire respectivement les variables "texte" et "position".

    le 18/10/2016 à 09h55

  • patricerameaux

    patricerameaux

    je ne sais pas si j'ai compris mais cela me paraît toujours aussi scabreux : pour pos et position je pense que c'est bon, par contre pour txt et texte alors là !!!

    le 18/10/2016 à 10h49

  • mram

    mram Administrateur

    Quand vous déclarez la fonction (lignes 2 à 5) vous utilisez txt et pos. Quand vous utilisez la fonction (et qu'elle est exécutée) ligne 6, il faut utiliser les variables "texte" et "position".

    le 18/10/2016 à 13h20

  • patricerameaux

    patricerameaux

    donc mon code est bon à priori

    le 18/10/2016 à 14h18

  • mram

    mram Administrateur

    Non, ligne 4 il ne faut pas utiliser les variables "texte" et "position" dans la fonction mais au moment de son exécution ligne 6.

    le 19/10/2016 à 10h46

  • mram

    mram Administrateur

    Comme j'ai dit précédemment : "txt" et "pos" sont les noms des arguments à mettre quand vous déclarez / construisez la fonction. Quand vous exécutez la fonction la valeur qui leur sera affectée sera celle que vous indiquerez à ce moment : c'est à dire respectivement les variables "texte" et "position".

    le 19/10/2016 à 10h46

  • dabernier44-12

    dabernier44-12

    Je ne trouve pas mon erreur : var recup; function trouve(txt,pos) { if (typeof txt == "string" && typeof pos == "number") { recup = txt.charAt(pos); return recup; } else { return false; } } trouve(texte,position); alert (recup);

    le 12/02/2018 à 14h47

  • mram

    mram Administrateur

    Bonjour, pourquoi utiliser une condition ici ? Ce n'est pas demandé. Mais c'est bien vu de vouloir tester si les paramètres passés en entrée sont bien au format attendu, c'est un bon réflexe mais faites au plus simple pour commencer.

    le 12/02/2018 à 22h23

  • philgd28

    philgd28

    Je viens de changer mon code, mais cela ne passe toujours pas. message : avez-vous bien utilisé les 2 arguments dans la fonction. le code de dessous en commentaire fonctionne aussi dans JSBin.

    le 09/08/2017 à 17h25

  • mram

    mram Administrateur

    Bonjour, ici aussi dans la fonction une seule ligne suffit pour retourner le résultat. Votre code initial est aussi fonctionnel, mais on demande de faire au plus simple.

    le 16/08/2017 à 09h58

  • djalloh2016-72

    djalloh2016-72

    voici une solution parmi tant d'autres pour ceux qui galère : var recup; function trouve(txt,pos){ return txt.charAt(pos); } recup = trouve(texte,position); alert(recup);

    le 28/02/2018 à 17h22

  • lanco.christophe-84

    lanco.christophe-84

    Hello, je vois pas ce qui coince ici / var recup; function trouve(txt,pos) { return(txt.charAt(pos)); } recup = trouve(texte,position); alert(recup);

    le 15/02/2018 à 19h40

  • mram

    mram Administrateur

    Bonjour, pas besoin des parenthèses après le mot clé "return".

    le 16/02/2018 à 00h21

  • joselemarchand

    joselemarchand

    bonjour, je sèche: var recup; function trouve (txt,pos) { return texte.chartAt(position); } recup = trouve(txt,pos); alert(recup);

    le 05/01/2018 à 17h59

  • lanco.christophe-84

    lanco.christophe-84

    Ha cool, c'était juste ça!! Merci bcp

    le 16/02/2018 à 09h47

  • nathalie.2080

    nathalie.2080

    bonjour,pouvezvous m'aider?

    le 28/12/2017 à 15h25

  • mram

    mram Administrateur

    Bonjour, pas besoin de " = " avec le mot-clé "return".

    le 31/12/2017 à 18h41

  • alexismoquet

    alexismoquet

    Bjr, pouvez-vous m'adier svp ? j'ai ce message "Avez-vous utilisé les 2 arguments dans la fonction ?"

    le 25/10/2017 à 09h15

  • mram

    mram Administrateur

    Bonjour, le code de votre dernier essai est correct. Il fallait utiliser les variables texte et position qui contiennent déjà des valeurs et ne pas déclarer à nouveau les variables. Et attention, si vous mettez des guillemets autour du nom d'une variable elle ne sera plus reconnue comme une variable.

    le 25/10/2017 à 15h34

  • philgd28

    philgd28

    Bonjour, mon script fonctionne avec JSbin et à l'air corret, mais chez vous il me met un message d'erreur. Y a t'il un probléme à mon code d'aprés vous ? merci

    le 09/08/2017 à 08h27

  • mram

    mram Administrateur

    Oui le code fonctionne aussi comme ça. Mais nous on souhaite le décomposer en plusieurs étapes pour bien comprendre comment le tout fonctionne. il faut donc respecter ces étapes (voir les instructions).

    le 09/08/2017 à 11h39

  • farjallah.refka-37

    farjallah.refka-37

    bonjour, la solution est : var recup; var texte = "Lorem ipsum dolor sit amet"; var position = 9; function trouve(txt,pos) { return txt.charAt(pos); } recup = trouve(texte, position); alert(recup);

    le 13/04/2019 à 18h15

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Exercice pratique 1</title> <script src="script.js"></script> </head> <body> </body> </html>
var recup; var texte = "Lorem ipsum dolor sit amet"; var position = 9; /* Votre fonction trouve ici */ recup = trouve(texte, position); alert(recup);