[英]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.