簡體   English   中英

Javascript二維數組初始化

[英]Javascript two dimensional array initialization

遇到一個非常奇怪的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'length為1。如果長度超過1(“ ExampleOne; ExampleTwo”中的用戶類型),ExampleTwo不會進入數組,並且

alert("wtf");

根本不運行。 看來之前已經有錯誤了。 任何意見?

JavaScript沒有真正的二維數組。 而是將第二個數組放入第一個數組中。 更改為此:

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

是的,或者您像這樣聲明變量:

var controlArray = [[],[]];

要么

var controlArray = new Array(2);
for (var i = 0; i < 2; i++) {
  controlArray[i] = new Array(2);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM