我正在尝试从文件加载一些文本,将其拆分为\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
。
为什么线条不会被推入我的阵列?
答案 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?。
希望这有帮助。