javascript - Leer archivo de texto en un arreglo de objetos en Typescript
Quiero convertir los datos de mi archivo de texto en un arreglo de objetos, aquí están mis datos en el archivo de texto:
DOCNO NETAMOUNT IREF1 IREF2 DOCDT
001 30000 50 100 6/7/2020
2 40000 40 90 6/7/2020
Aquí está mi código hasta ahora:
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)
}
Quiero convertirlo en un formato como este:
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"}
Respuesta #1
Puedes usar regex para dividir los datos por línea nueva. Después de eso, divide cada línea por espacios para obtener las palabras. Finalmente, asigna todos los datos al encabezado correcto con 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);