Javascript变量undefined without Alert

时间:2015-11-23 02:03:02

标签: javascript

所以我有一段代码用于我正在处理的程序,它读取在第一个文件中指定的其他文本文件。但是,我的变量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会阻止加载本地文件。

1 个答案:

答案 0 :(得分:0)

如果未在全局范围中定义变量,则以下代码将返回true

window.txt === undefined