从javascript上的多维数组中检索值:范围错误?

从javascript上的多维数组中检索值:范围错误?,javascript,arrays,multidimensional-array,scope,global-variables,Javascript,Arrays,Multidimensional Array,Scope,Global Variables,我正在尝试做一个(非常简单的)搜索引擎,它将读取XML数据库,检查检索到的值是否符合搜索条件,然后将项目的ID添加到名为\u result[][]的全局变量中 我这样声明变量: var _result = new Array(new Array()); 在HTML将引用的.js文件的最开始处 当我要求提醒循环中的var值时,它可以正常工作。循环结束后,我发出了另一个警报,以测试在给定位置(即\u result[1][0])的结果是否仍然在\u result,并且它不起作用,var未定义。我

我正在尝试做一个(非常简单的)搜索引擎,它将读取XML数据库,检查检索到的值是否符合搜索条件,然后将项目的ID添加到名为
\u result[][]
的全局变量中

我这样声明变量:

var _result = new Array(new Array());  
在HTML将引用的.js文件的最开始处

当我要求提醒循环中的var值时,它可以正常工作。循环结束后,我发出了另一个警报,以测试在给定位置(即
\u result[1][0]
)的结果是否仍然在
\u result
,并且它不起作用,var未定义。我认为这可能是一个范围问题,我无法解决它。以下是让我头疼的原因:

function search (target, term) {//where target is the XML´s tag name and term the search term
    conectXML();// a function that will connect to the XML
    var temp=null;
    var idTemp;
    var text ="";

    for (i=0;i<_XML.length;i++) {
        temp = _XML[i].getElementsByTagName(String(target))[0].childNodes[0].nodeValue;
        idTemp = _XML[i].getElementsByTagName("contract")[0].childNodes[0].nodeValue;

        if (temp === term) {
            _result[i] = [i, idTemp, temp];
        }
        text = text + "</br>"+_result[i][1];
        alert (_result[i][1]); // this works, it will alert _result[i][1] value.
    }
    alert (_result[0][1]); // this doesn´t works. It alerts nothing, and the var appears to be undefined.
}
函数搜索(target,term){//其中target是XML的标记名,term是搜索项
conectXML();//将连接到XML的函数
var-temp=null;
变量idTemp;
var text=“”;

对于(i=0;i是否?JavaScript数组中有任何错误不需要“声明”。若要创建多维数组,只需将数组推送到另一个数组中。将其初始化为空:
var\u result=[];
并且没有其他内容。控制台显示几个CSS错误(跨浏览器问题),并显示_result[i]是未定义的。我将尝试您的解决方案(关于声明数组)并稍后在这里发表评论。谢谢!@Bergi,我按照您所说的声明了数组,但仍然得到“_result[I]未定义”指向我给出var“text”值的行。有趣的是,如果我在同一点(在循环内,在if外)发出警报(_result[I][1])警报将显示正确的var值,也就是说,它不是未定义的…但这可能是在另一个循环回合?