使用FileReader.readAsText()将.txt文件拆分为JavaScript数组

使用FileReader.readAsText()将.txt文件拆分为JavaScript数组,javascript,arrays,filereader,Javascript,Arrays,Filereader,我使用FileReader.readAsText()导入一个文件并将其导入到我的数组中,但它创建了一个新的数组,最后会推到现有数组的第一个位置。当我尝试索引该数组时,它显然是“未定义”的,即使我可以清楚地看到console.log命令中的值。我的test.txt文件读取 aaa bbb ccc ddd eee ddd eee eee 我想通过拆分每一行来读取文件并将其存储到数组中 ''' ''' 以下是我的控制台的外观: 您只将单个项目推送到访客列表中——这是分割文件的结果。相反,只需使用.sp

我使用FileReader.readAsText()导入一个文件并将其导入到我的数组中,但它创建了一个新的数组,最后会推到现有数组的第一个位置。当我尝试索引该数组时,它显然是“未定义”的,即使我可以清楚地看到console.log命令中的值。我的test.txt文件读取

aaa
bbb
ccc
ddd
eee
ddd
eee
eee

我想通过拆分每一行来读取文件并将其存储到数组中 '''

''' 以下是我的控制台的外观:

您只将单个项目推送到
访客列表中
——这是分割文件的结果。相反,只需使用
.split
的结果,而不是将其包围在另一个数组中,并确保将结果记录在回调内部,而不是外部

此外,为了实现多系统兼容性,有些环境使用换行符和换行符。考虑使用正则表达式,以可选的方式匹配一个换行符和一个换行符:

document.getElementById('inputfile').addEventListener('change', () => {
  const fr = new FileReader();
  fr.onload = () => {
    const guestList = fr.result.split(/\r?\n/);
    console.log(guestList);
  };
  fr.readAsText(this.files[0]);
});
document.getElementById('inputfile').addEventListener('change', () => {
  const fr = new FileReader();
  fr.onload = () => {
    const guestList = fr.result.split(/\r?\n/);
    console.log(guestList);
  };
  fr.readAsText(this.files[0]);
});