作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在解析 csv 文件:
let lines = csvData.split(/\r\n|\n/);
let headers = lines[0].split(',');
for (let i = 1; i < lines.length; i++) {
let values = lines[i].split(',');
let item = {};
for (let j = 0; j < headers.length; j++) {
item[headers[j]] = values[j];
}
items.push(item);
}
return items;
我正在获取它的数据。然而,数据都是字符串。我想将它们传递到 JSON,并使它们没有类型,这样我就可以将它们传递到具有不同类型的变量中。我不想直接使用parseInt/parseFloat,因为我不知道每个变量的具体类型。
但是,每次我将值传递给 JSON 时,它们都是字符串,例如“1234”,而不是1234。通常我可以将JSON数据传递给没有类型的类,但是这次我将csvData转换为JSON,JSON数据都是字符串。我猜这是因为 split 函数使它成为一个字符串?
可选:我可以将类型传递到这个函数中,例如 readCsvFile<T>(csvData)
,我可以做这样的事情:
if (typeof(T[headers[j]]) == 'number') {
item[headers[j]] = parseFloat(values[j]);
} else {
item[headers[j]] = values[j];
}
但是T[header[j]]没有通过编译。
最佳答案
我会做一些更实用的事情。
//Define variables
var csvData = "field1a,field2a,field3a\r\nfield1b,field2b,field3b";
var linesAsObjects = [];
var lines = csvData.split(/\r\n|\n/);
//Split fields here
var splitFields = function(line){
let fields = line.split(',');
addItem(fields);
}
// Assign field values to object or formatting here
var addItem = function(fields){
let obj = {};
obj.field1 = fields[0];
obj.field2 = fields[1];
obj.field3 = fields[2];
linesAsObjects.push(obj);
}
// Call the code for each line
lines.forEach(splitFields);
//Printing lines and fields as assigned to an object.
console.log(linesAsObjects);
关于javascript - 如何将字符串解析为无类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52260858/
我是一名优秀的程序员,十分优秀!