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);