使用JavaScript读取*.csv文件

使用JavaScript读取*.csv文件,javascript,jquery,parsing,csv,Javascript,Jquery,Parsing,Csv,我有一个csv文件,其数据格式如下: 2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff, 42540528726795050063891204319802818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0 2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff:ffff, 42540529360620350178005

我有一个csv文件,其数据格式如下:

2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,
42540528726795050063891204319802818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0

2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff:ffff,
42540529360620350178005905068154421248,42540529439848512692270242661698371583,SG,,,1.3667,103.8000,,0,0
我只想分析第一个逗号(IPv6地址)之后的项,以及该记录的lat/long(第一条记录中为36.0000138.0000)值


如何使用JavaScript/jQuery来实现这一点?

使用split方法将字符串转换为数组,然后根据需要对其进行迭代

var csv = "2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,4254052872679505006389120431980\n2818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0"; 
var myArray = csv.split("\n");//You should know what kind of new line your csv is using
myArray.map(function (e) { //Applies this function over each element of myArray that is each line of your csv
 var line = e.split(","); //Turn the comma separated string into an array
 return "The second element is: " + line[1]; //Do what you need
});

使用split方法将字符串转换为数组,然后根据需要对其进行迭代

var csv = "2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff:ffff,4254052872679505006389120431980\n2818560,42540528806023212578155541913346768895,JP,,,36.0000,138.0000,,0,0"; 
var myArray = csv.split("\n");//You should know what kind of new line your csv is using
myArray.map(function (e) { //Applies this function over each element of myArray that is each line of your csv
 var line = e.split(","); //Turn the comma separated string into an array
 return "The second element is: " + line[1]; //Do what you need
});

就像你用任何语言说的一样。首先打开文件。逐行读。在逗号上拆分每一行。使用数组的索引获取所需的值

jQuery.get('file.csv', function(data) {
   alert(data); // this is a line
   var tempArray = data.split(','); // array of data
   for(var i = 0; i < tempArray.length; i++)
   {
       console.log(tempArray[i]); // probably index 1 is your IPv6 address.
   }
});
jQuery.get('file.csv',函数(数据){
警报(数据);//这是一行
var tempArray=data.split(',');//数据数组
对于(var i=0;i
就像你在任何语言中使用的方式一样。首先打开文件。逐行读。在逗号上拆分每一行。使用数组的索引获取所需的值

jQuery.get('file.csv', function(data) {
   alert(data); // this is a line
   var tempArray = data.split(','); // array of data
   for(var i = 0; i < tempArray.length; i++)
   {
       console.log(tempArray[i]); // probably index 1 is your IPv6 address.
   }
});
jQuery.get('file.csv',函数(数据){
警报(数据);//这是一行
var tempArray=data.split(',');//数据数组
对于(var i=0;i
或仅使用CSV库,我建议使用(浏览器)或(NodeJS)

或仅使用CSV库,我建议使用(浏览器)或(NodeJS)

以下是您要做的:

$.ajax({
    type: "GET",
    url: "data.csv",
    success: function (data) {
        var data = Papa.parse(data);
        var output = {
            "IPv6" : data.data[0][1],
            "coordinates" : [data.data[1][5], data.data[1][6]]
        } /* -> These are the values you're looking for! */
    }
});
因为我无法演示AJAX(由于跨域脚本问题),所以我只演示下面的
success
函数


演示
var数据='2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff,'+“\n”+
'42540528726795050063891204319802818560425405288060232125781555419133467668895,JP,,,36.0000138.0000,,0,0'+“\n\n”+
'2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff,'+“\n”+
'425405293606203501780059055068154421248425405294398451269220242661698371583,SG,,,1.3667103.8000,,,0,0';
var success=函数(数据){
var data=Papa.parse(数据);
返回输出={
“IPv6”:data.data[0][1],
“坐标”:[数据.数据[1][5],数据.数据[1][6]]
}
}
document.body.innerHTML=''+JSON.stringify(成功(数据),null,2)+''
以下是您要做的:

$.ajax({
    type: "GET",
    url: "data.csv",
    success: function (data) {
        var data = Papa.parse(data);
        var output = {
            "IPv6" : data.data[0][1],
            "coordinates" : [data.data[1][5], data.data[1][6]]
        } /* -> These are the values you're looking for! */
    }
});
因为我无法演示AJAX(由于跨域脚本问题),所以我只演示下面的
success
函数


演示
var数据='2001:200::,2001:200:ffff:ffff:ffff:ffff:ffff,'+“\n”+
'42540528726795050063891204319802818560425405288060232125781555419133467668895,JP,,,36.0000138.0000,,0,0'+“\n\n”+
'2001:208::,2001:208:ffff:ffff:ffff:ffff:ffff,'+“\n”+
'425405293606203501780059055068154421248425405294398451269220242661698371583,SG,,,1.3667103.8000,,,0,0';
var success=函数(数据){
var data=Papa.parse(数据);
返回输出={
“IPv6”:data.data[0][1],
“坐标”:[数据.数据[1][5],数据.数据[1][6]]
}
}
document.body.innerHTML=''+JSON.stringify(成功(数据),null,2)+''

没有
.Split()
.Length
。我修正了你的打字错误。谢谢我更新了它。在发布这些xD之前,我应该将其输入IDE。我已经习惯了C#…@RadleyAnaya在拆分之前我不需要将这些数据转换成字符串吗?另外,JS如何在3个逗号-“,”上拆分?它会认为它是一个逗号吗?打开浏览器控制台,键入
“,”.split(“,”)
,然后查看您将得到什么。(它将返回一个包含4个空字符串的数组)@newfander-Yup vector是正确的。.split()方法返回一个数组。例如:“The,dog,,ran.”split(“,”);您将得到[“The”,“dog”,“run.”]没有
.Split()
.Length
。我修正了你的打字错误。谢谢我更新了它。在发布这些xD之前,我应该将其输入IDE。我已经习惯了C#…@RadleyAnaya在拆分之前我不需要将这些数据转换成字符串吗?另外,JS如何在3个逗号-“,”上拆分?它会认为它是一个逗号吗?打开浏览器控制台,键入
“,”.split(“,”)
,然后查看您将得到什么。(它将返回一个包含4个空字符串的数组)@newfander-Yup vector是正确的。.split()方法返回一个数组。例如:“The,dog,,ran.”split(“,”);您将获得[“The”,“dog”,“”“,“ran.”]您是如何将csv数据转换为字符串串联的(var data=“”)@newfander:如果您运行您的方法,该字符串应自动传递给
success
函数的!您是如何将csv数据转换为字符串串联的(var data=“”)@newfander:如果您运行您的方法,该字符串应自动传递给
success
函数!