Различные результаты при разборе после использования FileReader - PullRequest
0 голосов
/ 12 сентября 2018

Вопрос: Как получить тот же результат при анализе данных через FileReader, что и при передаче данных через переменную. Это три разных объекта, один с key и value из when who и where. Пример этого показан на первом изображении.

Мне нужно проанализировать данные из файла, файл всегда сохраняет один и тот же формат, но значения могут измениться.

Это функция, которую я сейчас использую для анализа данных:

function parseData(src) {
  var blocks = src.split('\n\n\n\n');
  var keys = {};

  for (var i = 0; i < blocks.length; i++) {
    var block = blocks[i].split('\n\n');
    var label = block[0];
    var key = keys[label] = {};

    for (var j = 1; j < block.length; j++) {
        var data = block[j].split(' --> ');
            key[data[0]] = data[1];
    }
  }

  return keys;
}

Это данные файла, которые мы анализируем:

journalism.When

2000 --> 219

2003 --> 194

1998 --> 190

2001 --> 173

2004 --> 155

2002 --> 155

1995 --> 144

2008 --> 127

1997 --> 123

1994 --> 117



journalism.Who

Atmos --> 85

J. Geophys --> 77

OECD --> 70

Grossman --> 56

EPA --> 54

PBL --> 49

Krueger --> 45

Stern --> 43

Selden --> 42

Taylor --> 41



journalism.Where

US --> 129

São Paulo --> 115

Brazil --> 104

U.S. --> 76

Germany --> 55

USA --> 45

America --> 42

Italy --> 39

UK --> 39

LA --> 36

Это fileReader

function readSingleFile(event) {
      const file = event.target.files[0];

      if (file) {
        const reader = new FileReader();
        reader.onload = function (e) {
          let src = e.target.result;
          var data = parseData(src);
        }
        reader.readAsText(file);
      } else {
        alert("Failed to load file");
      }
    }
    document.getElementById('fileinput').addEventListener('change', readSingleFile, false);

При синтаксическом анализе данных, например, через переменную var src = 'file contents'; Функция работает отлично и возвращает три разных объекта, как показано здесь:

enter image description here

Но если я использую fileReader, и результаты будут другими, как показано здесь:

enter image description here

Похоже, что при использовании fileReader текст форматируется или теряет пробелы. Кто-нибудь может определить, в чем проблема?

Может кто-нибудь сообщить мне, как это можно исправить, если есть еще примеры или если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать, Спасибо.

...