Bonjour,
Je n'arrive pas à comprendre comment fonctionne ce petit code, apparemment tout simple.
Cela donne:
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)
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 ?[ { index: 0, value: 'delta' },
{ index: 1, value: 'alpha' },
{ index: 2, value: 'charlie' },
{ index: 3, value: 'bravo' } ]
Dans le code, le mot "index" est juste du text. Si j'écris "toto" à la place ça fonctionne. Même chose avec "value".
Ca donne :
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)
En revanche si j'inverse "i" et "e" ça fonctionne pas:[ { toto: 0, tata: 'delta' },
{ toto: 1, tata: 'alpha' },
{ toto: 2, tata: 'charlie' },
{ toto: 3, tata: 'bravo' } ]
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)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() ?Ça me donne:
TypeError: i.toLowerCase is not a function
Partager