javascript - 在 Typescript 中将文本文件读取到对象数组中
我想把我的文本文件中的数据转换成对象数组,这是我文本文件中的数据:
DOCNO NETAMOUNT IREF1 IREF2 DOCDT
001 30000 50 100 6/7/2020
2 40000 40 90 6/7/2020
这是我目前的代码:
reader.onload = (ev)=>{
const data = reader.result;
var txtData = data.toString()
console.log(data,"txt data")
var lines = txtData.split(' ');
for(var line = 0; line < lines.length; line++){
console.log(lines[line]);
}
};
reader.readAsText(file)
}
我想转换成这样的格式:
0: {DOCNO: "001", NETAMOUNT: "30000", IREF1: "50", IREF2: "100", DOCDT: "6/7/20"}
1: {DOCNO: "2", NETAMOUNT: "40000", IREF1: "40", IREF2: "90", DOCDT: "6/7/20"}
答案#1
你可以使用正则表达式按换行符分割数据。之后再按空格分割每一行以获得单词。最后使用reduce()将所有数据映射到正确的标题。
const fakeFile = `
DOCNO NETAMOUNT IREF1 IREF2 DOCDT
001 30000 50 100 6/7/2020
2 40000 40 90 6/7/2020
`;
// Split data by newline character
const lines = fakeFile.trim().split(/\n/g);
// Split data by spaces (one or more)
const wordsPerLine = lines.map(line => line.trim().split(/\s+/g));
// First line are the headings
const headings = wordsPerLine.shift();
// Combine lines with heading
const result = wordsPerLine.reduce((all, line) => {
const obj = {};
line.forEach((word, index) => {
obj[headings[index]] = word;
});
all.push(obj);
return all;
}, []);
console.log(result);