【问题标题】:if I print whole array it works, but if i try to output its first index or any index, there no output or error sometimes如果我打印整个数组它工作,但如果我尝试输出它的第一个索引或任何索引,有时没有输出或错误
【发布时间】:2022-11-30 22:16:53
【问题描述】:

我从读取器对象 onload 读取一个 txt 文件,它读起来很好,但我想将特定结果保存在一个数组中,以便以后遍历,但它没有像 arr[0] 这样给出的数组索引,这是我的代码;

function loadData(item) {
    let finalString = new Array();
    let reader = new FileReader();
    var header_read = false, status_index = 0;
    reader.onload = function (progressEvent) {
        var lines = this.result.split("\n");
        for (var line = 0; line < lines.length - 1; line++) {
            var tmpArray = lines[line].split("\t");
            if(line === 0){
                const isStatus = (element) => element.toLowerCase() === 'status';
                var cur_index = tmpArray.findIndex(isStatus); 
            }else{
                finalString.push(tmpArray[cur_index]);
            }
        }
    };
    reader.readAsText(item);
    for(let try1 in finalString){
        console.log(finalString[try1]);
    }
}  

我在互联网上尝试了很多东西,但似乎没有什么对我有用

【问题讨论】:

  • 你没有处理阅读是异步在这里正确。当您尝试在末尾遍历 finalString 的内容时,该数组还没有填充任何内容。

标签: javascript html reader


【解决方案1】:

final String 是一个数组,你正在使用用于对象的 for-in 结构......你最好使用 for-of。

for(let str of finalString){
    console.log(str);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多