Javascript二维数组初始化

标签 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(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);

我定义了一个函数,并调用该函数。名为“controlArray”的二维数组定义为无值。基本上,该函数检查用户的输入并使用正则表达式来创建“名单”。例如,如果用户输入

ExampleOne;ExampleTwo

该函数将创建一个名为“nameList”的数组

nameList=[ExampleOne,ExampleTwo];

然后我想根据 nameList 的长度动态初始化名为“controlArray”的二维数组。然而,这只适用于 nameList 的长度为 1 的情况。如果它超过 1(用户输入“ExampleOne;ExampleTwo”),ExampleTwo 不会进入数组,并且

alert("wtf");

根本不运行。这看起来前面已经有错误了。有意见吗?

最佳答案

JavaScript 没有真正的二维数组。相反,您将第二个数组放入第一个数组中。将其更改为:

...
for(var counter = 0; counter < nameList.length; counter++){
       controlArray[counter] = [true, new RegExp(nameList[counter],"g")];
...

关于Javascript二维数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898190/

相关文章:

javascript - 简单的时钟不能正常工作

javascript - 用户输入带有变量声明的 JavaScript eval

c# - 扩展数组的最快方法

java - 将一维字符串数组转换为二维字符数组?

javascript - 将 1 的 JSON 数组转换为对象

java - 将字符串数组转换为 double 组(原始类型)的最佳做法是什么

c - C 中二维数组的 Typedef

data-warehouse - II 型 SCD,实体随着时间的推移而合并

Java将一维 vector 添加到二维 vector

javascript - JQuery Cookie 设置过期时间