从 file 获取数据.txt并使用数组返回



我有文件.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>

最新更新