使用 FileReader.readAsText() 将 .txt 文件拆分为 JavaScript 数组
Splitting a .txt file into a JavaScript Array using FileReader.readAsText()
我使用 FileReader.readAsText() 导入文件并将其导入我的数组,但它创建了一个新数组,最终推入了我现有数组的第一个位置。当我尝试索引该数组时,它显然是“未定义的”,即使我可以清楚地看到 console.log 命令中的值。我的测试 .txt 文件读取
aaa
bbb
ccc
ddd
eee
ddd
eee
eee
我想读取文件并通过拆分每一行将其存储到一个数组中
'''
var guestList = []
document.getElementById('inputfile')
.addEventListener('change', function loadFile() {
var fr=new FileReader();
fr.onload=function(){
guestList.push(fr.result.split('\n'));
}
console.log(guestList)
fr.readAsText(this.files[0]);
})
console.log(guestList)
'''
这是我的控制台的样子:
[]
0: (9) ["aaa", "bbb", "ccc", "ddd", "eee", "ddd", "eee", "eee", ""]
长度:1
原型:数组(0)
您只是将单个项目推送到 guestList
- 拆分文件的结果。相反,只需使用 .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]);
});
我使用 FileReader.readAsText() 导入文件并将其导入我的数组,但它创建了一个新数组,最终推入了我现有数组的第一个位置。当我尝试索引该数组时,它显然是“未定义的”,即使我可以清楚地看到 console.log 命令中的值。我的测试 .txt 文件读取
aaa
bbb
ccc
ddd
eee
ddd
eee
eee
我想读取文件并通过拆分每一行将其存储到一个数组中 '''
var guestList = []
document.getElementById('inputfile')
.addEventListener('change', function loadFile() {
var fr=new FileReader();
fr.onload=function(){
guestList.push(fr.result.split('\n'));
}
console.log(guestList)
fr.readAsText(this.files[0]);
})
console.log(guestList)
''' 这是我的控制台的样子: [] 0: (9) ["aaa", "bbb", "ccc", "ddd", "eee", "ddd", "eee", "eee", ""] 长度:1 原型:数组(0)
您只是将单个项目推送到 guestList
- 拆分文件的结果。相反,只需使用 .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]);
});