Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript二维数组初始化_Javascript_Arrays_Type 2 Dimension - Fatal编程技术网

Javascript二维数组初始化

Javascript二维数组初始化,javascript,arrays,type-2-dimension,Javascript,Arrays,Type 2 Dimension,遇到一个非常奇怪的javascript问题。请参见下面的我的代码: function initBadScripts(controlArray) { var scriptsLine = prompt("Please enter the bad scripts", "debug"); if (scriptsLine != null) { var pattern = /;/; var nameList = scriptsLine.split(patte

遇到一个非常奇怪的javascript问题。请参见下面的我的代码:

function initBadScripts(controlArray) {
    var scriptsLine = prompt("Please enter the bad scripts", "debug");

    if (scriptsLine != null) {
        var pattern = /;/;
        var nameList = scriptsLine.split(pattern);
        alert(nameList+" "+nameList.length);
        for(var counter = 0; counter < nameList.length; counter++){
           controlArray[counter][0]=true;
           controlArray[counter][1]= new RegExp(nameList[counter],"g");
           alert(controlArray[counter][0]);
        }
    }
    alert("wtf!");
}

var controlArray = [[]];
initBadScripts(controlArray);
该函数将创建一个名为“nameList”的数组

nameList=[ExampleOne,ExampleTwo];
然后,我想根据名称列表的长度对名为“controlArray”的二维数组进行动态初始化。然而,这只适用于名称列表的长度为1的情况。如果超过1(用户键入'ExampleOne;ExampleTwo'),则ExampleTwo不会进入数组,而

alert("wtf");

根本不跑。这似乎之前已经有一个错误。有什么评论吗?

JavaScript没有真正的二维数组。而是在第一个数组中放置第二个数组。将其更改为:

...
for(var counter = 0; counter < nameList.length; counter++){
       controlArray[counter] = [true, new RegExp(nameList[counter],"g")];
...
。。。
对于(变量计数器=0;计数器
是,或者您这样声明变量:

var controlArray = [[],[]];

var-controlArray=新数组(2);
对于(变量i=0;i<2;i++){
controlArray[i]=新数组(2);
}

使用您的开发工具和调试器查找错误。很抱歉,我正在编写一个油脂猴脚本,它通常无法调试。
var pattern=/;/;
可能应该是
var pattern=/;/g;
,否则它只会首先在输入中拾取
,从而导致最大大小为2的数组。这不是问题。这适用于我。非常感谢。顺便问一下,我在第一个数组中放入第二个数组是什么意思?如果我们用不同的编码,您可以这样填充:
var child1=[true,/abc/g];var child2=[true,/def/g];var controlArray=[child1,child2];
您已将子数组嵌套到父数组中。此controlArray和上面的controlArray是相同的。
var controlArray = [[],[]];
var controlArray = new Array(2);
for (var i = 0; i < 2; i++) {
  controlArray[i] = new Array(2);
}