IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Correspondance des param�tres d'une fonction.


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2017
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 168
    Par d�faut Correspondance des param�tres d'une fonction.
    Bonjour,

    Je n'arrive pas � comprendre comment fonctionne ce petit code, apparemment tout simple.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var liste = ['Delta', 'alpha', 'CHARLIE', 'bravo'];
     
    // Création d'objet temporaire qui contient les positions
    // et les valeurs en minuscules
    var mapped = liste.map(function(e, i) {
      return { index: i, value: e.toLowerCase() };
    });
    console.log(mapped)
    Cela donne:
    [ { index: 0, value: 'delta' },
    { index: 1, value: 'alpha' },
    { index: 2, value: 'charlie' },
    { index: 3, value: 'bravo' } ]
    Comment la machine sait que dans la clef "index: i", "i" correspond � l'index de chaque �l�ment du tableau et dans la valeur "value: e.toLowerCase()", "e" correspond � la valeur de chaque �l�ment du tabeau ?
    Dans le code, le mot "index" est juste du text. Si j'�cris "toto" � la place �a fonctionne. M�me chose avec "value".
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var liste = ['Delta', 'alpha', 'CHARLIE', 'bravo'];
     
    // Création d'objet temporaire qui contient les positions
    // et les valeurs en minuscules
    var mapped = liste.map(function(e, i) {
      return { toto: i, tata: e.toLowerCase() };
    });
    console.log(mapped)
    Ca donne :
    [ { toto: 0, tata: 'delta' },
    { toto: 1, tata: 'alpha' },
    { toto: 2, tata: 'charlie' },
    { toto: 3, tata: 'bravo' } ]
    En revanche si j'inverse "i" et "e" �a fonctionne pas:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var liste = ['Delta', 'alpha', 'CHARLIE', 'bravo'];
     
    // Création d'objet temporaire qui contient les positions
    // et les valeurs en minuscules
    var mapped = liste.map(function(e, i) {
      return { index: e, value: i.toLowerCase() };
    });
    console.log(mapped)
    �a me donne:
    TypeError: i.toLowerCase is not a function
    Je sais que pour { index: e, value: i.toLowerCase() } ce qui est � droite correspond forc�ment � la valeur mais alors pourquoi cela fonctionne pas avec i.toLowerCase() ?

  2. #2
    Expert confirm�
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par d�faut
    il faut regarder ce qu'il y a indiqu� dans function (e, i). c'est � cet endroit qu'il est d�fini que � chaque boucle, l'�l�ment de la liste est dans la 1re variable "e" et l'index est dans la 2e variable "i";
    ensuite dans la fonction vous pouvez faire ce que vous voulez de ces 2 variables.

  3. #3
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2017
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 168
    Par d�faut
    Je suis en train de suivre les cours de freeCodeCamp et je ne vois pas quel cours traite ce genre d'exemple. pour moi tout �a reste un myst�re. auriez vous un cours qui pourrais m'aider � comprendre ?

  4. #4
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par d�faut
    Bonjour,

    l'explication est ici :


    Description
    [...]
    callback est appel�e avec trois arguments : [B]la valeur de l'�l�ment du tableau, l'index de cet �l�ment et l'objet Array qui est parcouru.
    C'est donc une convention.

    Ici, on pourrait �crire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    var mapped = liste.map(function(the_value, the_index, the_array ) {
      console.log( 'pour l\'index '+the_index+', la valeur est '+the_value+' dans le tableau ['+the_array+']');
    });

  5. #5
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juin 2017
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 168
    Par d�faut
    Thank you

Discussions similaires

  1. R�ponses: 1
    Dernier message: 27/11/2008, 10h55
  2. R�ponses: 2
    Dernier message: 28/04/2008, 20h04
  3. R�ponses: 3
    Dernier message: 16/05/2007, 10h03
  4. R�ponses: 3
    Dernier message: 14/05/2007, 15h24
  5. Evaluations des param�tres d'une fonction
    Par WebPac dans le forum Langage
    R�ponses: 15
    Dernier message: 06/10/2005, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo