How to skip .txt file and get values ​​in javascript

Basically, I have my code installed as follows:

function converttxttoArray( filename ) { var reader = (window.XMLHttpRequest != null ) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); reader.open("GET", filename, false ); reader.send( ); return reader.responseText.split(/(\r\n|\n)/g); } var stop_list = converttxttoArray("../data/stops.txt"); var text = ""; var i; for (i = 0; i < stop_list.length; i++) { text += stop_list[i] + "<br>"; } 

console.log (text) will just give me:

  stop_id,stop_code,stop_name,stop_lat,stop_lon,zone_id,stop_url,location_type,parent_station,platform_code,wheelchair_boarding 70011,70011,San Francisco Caltrain,37.77639,-122.394992,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,NB,1 70012,70012,San Francisco Caltrain,37.776348,-122.394935,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,SB,1 

And this is what the contents of my stop.txt file look like:

 stop_id,stop_code,stop_name,stop_lat,stop_lon,zone_id,stop_url,location_type,parent_station,platform_code,wheelchair_boarding 70011,70011,San Francisco Caltrain,37.77639,-122.394992,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,NB,1 70012,70012,San Francisco Caltrain,37.776348,-122.394935,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,SB,1 70021,70021,22nd St Caltrain,37.757599,-122.39188,1,http://www.caltrain.com/stations/22ndstreetstation.html,0,ct22,NB,2 70022,70022,22nd St Caltrain,37.757583,-122.392404,1,http://www.caltrain.com/stations/22ndstreetstation.html,0,ct22,SB,2 70031,70031,Bayshore Caltrain,37.709537,-122.401586,1,http://www.caltrain.com/stations/bayshorestation.html,0,ctba,NB,1 70032,70032,Bayshore Caltrain,37.709544,-122.40198,1,http://www.caltrain.com/stations/bayshorestation.html,0,ctba,SB,1 70041,70041,So. San Francisco Caltrain Station,37.65589,-122.40487,1,http://www.caltrain.com/stations/southsanfranciscostation.html,0,ctssf,NB,2 70042,70042,So. San Francisco Caltrain Station,37.655946,-122.405018,1,http://www.caltrain.com/stations/southsanfranciscostation.html,0,ctssf,SB,2 70051,70051,San Bruno Caltrain,37.631128,-122.411968,1,http://www.caltrain.com/stations/sanbrunostation.html,0,ctsb,NB,1 

This file is in cvs style. I want to get stop_name, stop_id, stop_code, stop_long .... of each element in the array.

Using javascript Promise api will be great

+5
source share
1 answer

You can use RegExp /\n+/ in converttxttoArray ; Array.prototype.shift() to delete, save the first element of the stop_list array; .split() using RegExp /,/ to convert a string to an array; get the index "stop_name" in the deleted first element in stop_list using .indexOf() ; Array.prototype.map() , .split() with /,/ as a parameter to return an element with index "stop_name" within the remainder of stop_list

 window.onload = function() { function converttxttoArray(filename) { var reader = (window.XMLHttpRequest != null) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); reader.open("GET", filename, false); reader.onload = function() { var stop_list = this.responseText.split(/\n+/); var re = /,/; var headers = stop_list.shift().split(re); var index = headers.indexOf("stop_name"); var res = stop_list.map(function(val, key) { return val.split(re)[index]; }); console.log(res); var text = ""; var i; for (i = 0; i < stop_list.length; i++) { text += res[i] + "<br>"; } console.log(text); document.body.innerHTML = text; } reader.send(); } converttxttoArray("stops.txt"); } 

plnkr http://plnkr.co/edit/dhr6hQAb151c8oFBTvqk?p=preview

+3
source

Source: https://habr.com/ru/post/1247763/


All Articles