Вопрос: Как получить тот же результат при анализе данных через 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';
Функция работает отлично и возвращает три разных объекта, как показано здесь:
Но если я использую fileReader, и результаты будут другими, как показано здесь:
Похоже, что при использовании fileReader
текст форматируется или теряет пробелы. Кто-нибудь может определить, в чем проблема?
Может кто-нибудь сообщить мне, как это можно исправить, если есть еще примеры или если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать, Спасибо.