我有文件.txt
apple <--line 1
banana <--line 2
这是我的剧本
url = 'file.txt';
homelists = [];
$.get(url, function(data) {
var lines = data.split("n"); <--i want to split it by line
$.each(lines, function(n ,urlRecord) {
homelists.push(urlRecord); <--add it to my homelists array
});
});
console.log(homelists); <-- returns array
console.log(homelists[0]); <--undefined
我的问题是我无法获得房屋列表的内部价值 如何获取主列表[0]或主列表[1]。(JavaScript or jquery(preferable((
Javascript/Jquery ajax 是一个异步调用,这意味着代码 $.get 和 console.log 在你的例子中将并行执行(立即或相同的时间(,所以要解析你的文件的结果.txt,你需要在函数中执行此操作(将在 ajax 调用完成后执行(。
url = 'file.txt';
homelists = [];
$.get(url, function(data) {
var lines = data.split("n");
$.each(lines, function(n ,urlRecord) {
homelists.push(urlRecord);
});
console.log(homelists);
console.log(homelists[0]);
});
我知道这是一个太简单的答案,对其他人来说可能听起来很愚蠢,但我有一个想法! 为什么不在会话中存储 $.get 数据
url = 'file.txt';
$.get(url, function(data) {
localStorage['homelists'] = data;
});
然后将变量分配给该会话
homelists = localStorage['homelists'];
然后使会话 = 空
localStorage['homelists'] = null
当你做控制台时.log外面
console.log(homelists); <-returns string which you can manipulate to turn it into array
console.log(localStorage['homelists']); <-returns null
我还不知道我的项目有什么不好的一面/影响......任何想法吗?
既然你使用的是jQuery,那么使用AJAX
会更好。
!
const ImportData = function(file){
let arrayData = undefined;
$.ajax({
url: file,
type: 'GET',
error: (err) => { throw new Error(err) },
success: ( data ) => {
arrayData = MakeArray( data );
//Do whatever you want here
console.log( arrayData );
}
});
}
const MakeArray = function(plaintext){
const array = [];
plaintext.split('n').forEach( (line) => {
line = line.trim();
array.push( line );
} );
return array;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
const file = "https://www.w3.org/TR/PNG/iso_8859-1.txt";
document.addEventListener('DOMContentLoaded', function(){
ImportData( file );
});
</script>