所以我有一段代码用于我正在处理的程序,它读取在第一个文件中指定的其他文本文件。但是,我的变量newText和txt存在一些问题。如果我使用javascript警报,它会工作,但如果我取出警报(txt);我的代码断了,newText未定义。
function createStates(textArr, numStates, acts)
{
textArr.splice();
var states = [];
var path = window.prompt("Please enter the path to your state files", "");
for( var i =0; i < numStates; i++)
{
// reward for being in state, terminal, then statefile
var reward = parseInt(textArr.shift());
var terminal = parseInt(textArr.shift());
if(terminal == 0)
{
var newText = [];
var nextFile = path + String(textArr[0]);
var xmlhttp = new XMLHttpRequest();
var txt;
xmlhttp.onreadystatechange = function(){
if(xmlhttp.status == 200 && xmlhttp.readyState == 4){
txt = xmlhttp.responseText;
newText = String(txt).split(/[\r\n]+/g);
}
};;
xmlhttp.open("GET","file:///" + nextFile,true);
xmlhttp.send();
alert(txt);
var state = new State(reward, acts, newText);
states.push(state);
}
textArr.shift();
}
return states;
}
另外,以下是它正在处理的文本文件之一,
4 11
0 0 0 0 0 0 0.8 0 0 0.1 0.1
0 0 0 0 0 0 0.1 0 0 0.8 0.1
0 0 0 0 0 0 0 0 0 0.1 0.9
0 0 0 0 0 0 0.1 0 0 0 0.9
这是针对学校项目的,我必须从本地计算机中读取文件。我使用firefox来运行它,因为chrome会阻止加载本地文件。
答案 0 :(得分:0)
如果未在全局范围中定义变量,则以下代码将返回true
window.txt === undefined