Ajax CSV valeurs de tableau non définies

Pour un script je travaille, je continue à avoir un tableau rempli avec ‘undefined’ au lieu des valeurs réelles, j’ai un fichier CSV que je lis avec $ .ajax, j’essaye de scinder la totalité du CSV en tableaux basés sur la ligne d’en-tête .
Le code que j’ai maintenant:

$.ajax({ type: "GET", url: "airport.txt", dataType: "text", success: function(data) { lines = processData(data); function processData(allText) { var allTextLines = allText.split(/\r\n|\n/); var headers = allTextLines[0].split(','); for (var i=1; i<allTextLines.length; i++) { var data = allTextLines[i].split(','); if (data.length == headers.length) { var tarr = []; for (var j=0; j<headers.length; j++) { tarr.push(headers[j]+":"+data[j]); } lines.push(tarr); } } lines.map(function(d){ country.push(d.headers); }); console.log(country); } } }); 

Je pense que la question se situe dans le country.push(d.headers); J’ai essayé plusieurs autres options pour les en- d.headers telles que d.lines d.headers[0] d.country et d.data .

Ce que je veux, c’est que le country soit rempli avec les en- headers[0] qui correspondent à la colonne intitulée “Code pays”, mais dès que je change d.headers en d.headers[0] je reçois Uncaught TypeError: Cannot read property '0' of undefined
Qu’est-ce qui ne va pas ici et comment puis-je mieux filtrer le fichier CSV par colonne?

Modifier:
Avec l’aide du plugin dans les commentaires, j’ai réussi à le faire fonctionner. Si quelqu’un d’autre se heurte à ce problème, voici l’extrait de code que j’ai utilisé pour le faire fonctionner pour moi. Cela pourrait probablement être mieux, mais je ne suis pas vraiment avancé en JavaScript.

 $(document).ready(function(){ //Read CSV $.ajax({ type: "GET", url: "airport.txt", dataType: "text" }) .done(function(data){ //process CSV Data processCsv(data); }) .fail(function(){ alert("Error: Failed to load data"); }); }); function processCsv(data){ //Read CSV Data into multidimensional Array var array = $.csv.toArrays(data); //Put headers in own array var headers = array.splice(0,1); //Make each header its own value var headerSsortingng = headers.toSsortingng(); headers = headerSsortingng.split(','); //separate all array values var arraySsortingng = array.toSsortingng(); array = arraySsortingng.split(','); return { header:headers, values:array}; }