我试图使用Java Script查找每列的数据类型,它打印数字,字符串和日期的字符串数据类型。
我需要每个列数据类型,无论是日期,字符串,数字还是浮点数。
没有CSV,它会打印正确的数据类型。
没有CSV文件的工作示例
var num=15;
var str="xyz";
console.log(typeof num);
console.log(typeof str);
Output
number
string
但是使用csv文件会打印所有列的字符串。
我的CSV文件是:
01/01/1991,12,xyz,14.4
01/01/1992,20,abc,20.5
01/02/1980,78,xy,60.8
我正在使用Papa Parse javascript插件获取每个列,然后检查数据类型。
如何从CSV文件中获取每列的数据类型? 有没有其他方法可以将CSV解析到我们可以在特定行或列上遍历的数组?
答案 0 :(得分:1)
当您在javascript变量中加载CSV时,该变量是一个字符串。
您必须将csv提取到JSON数组中,并且必须相应地转换每个变量。
代码:
$.ajax({
type: "GET",
url: "sample.csv",
success: function (data) { loadData(data); }
});
/*var data = 'date,name,value\n\
01/01/1991,xyz,14.4\n\
01/01/1992,abc,20.5\n\
01/02/1980,xy,60.8';
loadData(data);*/
function loadData(data1){
console.log(data1);
var dataPoints = data1.split(/\r\n|\n/);
//console.log(lines);
var headers = dataPoints[0].split(','); // if you have header
var lines = [];
console.log(headers);
console.log(dataPoints.length);
for (var i = 1; i < dataPoints.length; i++) {
//console.log(i);
var point = dataPoints[i].split(',');
//console.log(point);
if (point.length == headers.length) {
var json= {};
for (var j = 0; j < headers.length; j++) {
if(headers[j]=='date'){
json[headers[j]] = new Date(point[j]);
}else if(headers[j]=='value'){
//console.log(point[j]);
json[headers[j]] = Number(point[j]);
}else{
json[headers[j]] = point[j];
}
}
lines.push(json);
console.log(json);
}
}
的console.log(线); }
示例CSV:
date,name,value
01/01/1991,xyz,14.4
01/01/1992,abc,20.5
01/02/1980,xy,60.8
修改后的代码