数组保持为空

时间:2016-02-17 22:09:03

标签: javascript jquery arrays

我正在尝试从文件加载一些文本,将其拆分为\n并将每行推送到一个数组中:

var entries = new Array();
$( document ).ready(function() {
    loadFile(); 
    console.log(entries.length) // Result: 0
});

function loadFile(){
    $.get('file.txt', function(data) {
        console.log(data); // my file is shown
        var lines = data.split("\n");
        $.each(lines, function(key, value) {
            entries.push(value);
        });

    }, 'text'); 
}

我可以在控制台中看到我文件的内容,因此正在加载文件,但我的数组仍为空,其长度为0

为什么线条不会被推入我的阵列?

1 个答案:

答案 0 :(得分:1)

$.get是异步函数,因此您应该在获得响应后显示回调中的长度data

var entries = new Array();
$( document ).ready(function() {
    loadFile();
});

function loadFile(){
    $.get('file.txt', function(data) {
        console.log(data); // my file is shown

        var lines = data.split("\n");
        $.each(lines, function(key, value) {
            entries.push(value);
        });

        console.log(entries.length) // that will return the true length

    }, 'text'); 
}

检查How do I return the response from an asynchronous call?

希望这有帮助。