在Javascript中重置FileReader内容

在Javascript中重置FileReader内容,javascript,Javascript,你好 我想用FileReader加载一个文件,然后解析其内容并将其转换为对象。我唯一的问题是每次加载文件时,对象总是第一个创建的 HTML: JAVASCRIPT: var objID = {}; var myArray = []; function readBlob() { var files = document.getElementById('files').files; var file = files[0]; var reader = new FileR

你好

我想用FileReader加载一个文件,然后解析其内容并将其转换为对象。我唯一的问题是每次加载文件时,对象总是第一个创建的

HTML:


JAVASCRIPT:

var objID = {};
var myArray = [];

function readBlob() {
    var files = document.getElementById('files').files;
    var file = files[0];

    var reader = new FileReader();
    reader.onload = (function(theFile) {
        var myString = theFile.target.result;
        myString = myString.split('\n');
        parseTXT(myString);
    });
    reader.readAsBinaryString(file);
}


function parseTXT(string) {
    for (var index = 0; index < string.length; index += 5) {
        objID.id = data[index];
        objID.refNb = data[index + 2];
        objID.title = data[index + 8];
        objID.isbn = data[index + 15];
    }
    myArray.push(objID);
    console.log(myArray);
}
var objID={};
var myArray=[];
函数readBlob(){
var files=document.getElementById('files').files;
var file=files[0];
var reader=new FileReader();
reader.onload=(函数(文件){
var myString=theFile.target.result;
myString=myString.split('\n');
parseTXT(myString);
});
reader.readAsBinaryString(文件);
}
函数parseTXT(字符串){
对于(变量索引=0;索引
我不知道如何在每次加载另一个文件时“重置”文件内容以创建对象。我尝试使用本教程:


提前感谢您的帮助!:)

为了达到预期的结果,在parseTXT函数中声明objID变量,我们每次都会使用temp对象将其推送到myArray对象

function parseTXT(string) {
    var objID = {};
    for (var index = 0; index < string.length; index += 5) {
        objID.id = string[index];
        objID.refNb = string[index + 2];
        objID.title = string[index + 8];
        objID.isbn = string[index + 15];
    }
    myArray.push(objID);
    console.log(myArray);
}
函数parseTXT(字符串){
var objID={};
对于(变量索引=0;索引

代码示例-

请注意,请确保它有效。在代码笔上,第二个对象将替换第一个对象。另外,我希望能够在我的程序中的其他地方使用该对象数组。在您的示例中,myArray仅存在于函数中。@EricF,问题在于objID empty Obj声明为全局变量,并且每次全局变量更改,myArray更改为首次上载,而不是附加更新的代码笔和我的答案,希望它现在对您有效:)
function parseTXT(string) {
    var objID = {};
    for (var index = 0; index < string.length; index += 5) {
        objID.id = string[index];
        objID.refNb = string[index + 2];
        objID.title = string[index + 8];
        objID.isbn = string[index + 15];
    }
    myArray.push(objID);
    console.log(myArray);
}