請參閱此:jquery的多型鐵血陣列的行爲出現異常
http://jsfiddle.net/MasterOfKitties/v7xbu/7/
/*This is the desired behavior*/
/*var A = [1, 2, 3]*/
/*var B = "hello", [1, 2, 3],
"hello", [2, 3, 2],
"hello", [1, 5, 1]]*/
var A = new Array();
var B = new Array();
function fnMakeArray()
{
var strTemp;
var arrTemp = new Array();
strTemp = parseInt(window.prompt("Enter a number until you hit cancel",""));
while (strTemp>0)
{
arrTemp.push(strTemp);
strTemp = parseInt(window.prompt("Enter a number until you hit cancel",""));
}
A[0] = "hello";
A[1] = arrTemp;
alert(A);
}
function fnReplicateArray()
{
B.push(A);
fnDisBArray();
alert(B);
}
function fnDisBArray()
{
var strTemp;
for(var x = 0; x<B.length;x++)
{
strTemp += "<P>" + B[x] + "</p>"
}
document.getElementById('parse').innerHTML = strTemp ;
}
出於某種原因,試圖顯示B排列時,它提出了未定義。此外,它似乎沒有正確地增加鋸齒狀陣列,因爲即使佈置了b [1]或b [2]元素,b [0]元素也開始發生根本性變化。
有沒有什麼幫助?這是怎麼回事?
被所附這是步驟在正確的方向。但是,爲什麼我會在代碼的顯示屏前看到undefined? –
因爲你必須像mithunsatheesh所說的那樣初始化strTmp爲「」。否則,當試圖用另一個字符串連接undefined時,會得到字符串「undefined」。 – bfavaretto
我實際上試圖存儲信息來動態創建一個菜單,如:ITEM(名稱,類型,價格,[成分1,成分2等]),然後將其全部存儲到另一個名爲MENU的數組中。因此MENU [0]將顯示特定ITEM的所有信息,MENU [1]將顯示另一種類型的所有信息。這基本上只是一個複雜的參差不齊的陣列,但當簡單的參差不齊的陣列投擲我時,它很奇怪。 –