javascript - Typescript'te metin dosyasını nesne dizisine okuma
Metin dosyamdaki verileri bir nesneler dizisine dönüştürmek istiyorum, işte metin dosyamdaki veriler:
DOCNO NETAMOUNT IREF1 IREF2 DOCDT
001 30000 50 100 6/7/2020
2 40000 40 90 6/7/2020
İşte şimdilik benim kodum:
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)
}
Bunu bu şekilde bir formata dönüştürmek istiyorum:
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"}
Cevap #1
Verileri yeni satırlarla ayırmak için regex kullanabilirsiniz. Bundan sonra, kelimeleri almak için her satırı boşluklarla ayırın. Son olarak, tüm verileri doğru başlığa reduce() ile eşleyin.
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);