问题: :通过FileReader
解析数据时,如何获得与通过变量传递数据时相同的结果。这是三个不同的对象,一个是key
的{{1}}和value
的{{1}}和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
解析数据时,该函数可以正常工作,并且返回三个不同的对象,如下所示:
但是,如果我使用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);
时,文本已格式化或丢失了空格。谁能发现问题所在?
有人可以建议我如何解决此问题,如果有其他示例,或者如果您有任何疑问,请随时提出,谢谢。