Bonjour,
Premièrement je m’excuse d’avance si je pose ma question dans le mauvais emplacement du forum. Comme c’est la première fois que je l’utilise, je suis encore un néophyte ! J’ai préalablement lu les règles d’usage et de bonne conduite pour tenter de comprendre et donc j’espère ne pas donner du fil à retordre aux modérateurs…
Je suis un GROS débutant en JavaScript. Je m’y suis mis par obligation pour programmer des écrans dans le cadre de mon alternance.
Ce que je veux actuellement faire c’est convertir un tableau de données (Array) sous forme d’un fichier CVS pour le lire sous exel. En farfouillant sur internet je suis tombé sur des usines à gaz bien trop compliquées pour moi, alors que ce que je veux faire est relativement simple. Et puis je suis tombé sur cette fonction :
Elle m’a plu car elle est courte. Sauf que bémol, je ne comprend rien à cette ligne de code : s += ((s !== '') ? l : '') + a[i].join(c);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function arrayToSv(a, b) { var s = '', i = 0, j = a.length, c = (b && b.columnDelimiter) ? b.columnDelimiter : ';', l = (b && b.lineDelimiter) ? b.lineDelimiter : '\n'; for (; i < j; i++) { s += ((s !== '') ? l : '') + a[i].join(c); } return s; }
En testant la fonction j’ai donc constaté que le premier élément du tableau fait office d’entête dans le fichier CSV, ce que je ne veux pas…
J’ai donc tenté de modifier le code pour enlever le fait que le premier élément de mon tableau soit l’entête du fichier CSV, mais comme vous vous en doutez je n’y suis pas parvenu !
Voici donc mes demandes / questions :
- pourriez vous me décortiquer et m’expliquer cette ligne de code : s += ((s !== '') ? l : '') + a[i].join(c); -> ligne de code qui est visiblement le cœur de la fonction.
- pourriez me proposer une alternative (même plus longue en code) pour ne pas avoir d’en-tête, tout en conservant la structure de la fonction ?
Merci d’avance et je vous souhaite une bonne journée.
Partager