使用FileReader后进行解析时的结果不同

时间:2018-09-12 11:23:31

标签: javascript parsing object filereader

问题: :通过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解析数据时,该函数可以正常工作,并且返回三个不同的对象,如下所示:

enter image description here

但是,如果我使用fileReader,结果将不同,如下所示:

enter image description here

因此,似乎在使用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); 时,文本已格式化或丢失了空格。谁能发现问题所在?

有人可以建议我如何解决此问题,如果有其他示例,或者如果您有任何疑问,请随时提出,谢谢。

0 个答案:

没有答案