2011-02-09 21 views
2

任何人都可以幫助我創建和解析JavaScript中的3D數組。在JavaScript中創建和解析3D數組?

即時通訊有問題每個問題ID有一個選項和一個可選的選項文本。

所以我需要創建用於questionId,optionId,optionText(字符串)..

Thnks預先

+1

循環那會是2D陣列。讓我來說明一下:[id1:[optionId1,optionText2],id2:[optionId2,optionText2]] – usoban 2011-02-09 10:37:00

+0

即時通訊新的數組在javascript中,我如何創建這個? – kiran 2011-02-09 10:43:33

+0

@usoban:你指定了什麼類型的數組? – kiran 2011-02-09 10:45:50

回答

0

喜可以創建第n維誤差在JavaScript的例子之一是低於3D陣列

var apple = new Array(); apple [1] = new Array(); apple [1] [1] = new Array(); apple [1] [1] [1] ='yourname'

現在您可以使用遞歸函數來遍歷數組,並檢查和刪除每一件事情。

2
var data = new Array(); 

數據從常規的一維數組開始。二維數組實際上只是一個數組數組。所以,你可以不喜歡

for (var i = 0; i<numberOfQuestions; i++){ 
data[i] = new Array(); 
data[i][0] = something; 
data[i][1] = somethingElse; 
} 

另外,您可以用下面的辦法

for (var i = 0; i<numberOfQuestions; i++){ 
data.push([something, somethingElse]); 
} 

在任何情況下,在某些時候你會需要一個循環來填充與子陣列初始陣列獲得第二個效果。

10

一個一維數組是:

var myArr = new Array(); 
myArr[0] = "Hi"; 
myArr[1] = "there"; 
myArr[2] = "dude"; 

alert(myArr[1]); // Alerts 'there' 

的二維數組將是:

var myArr = new Array(); 
myArr[0] = new Array("Val", "Va"); 
myArr[1] = new Array("Val", "yo"); 
myArr[2] = new Array("Val", "Val"); 

alert(myArr[1][1]); // Alerts 'yo' 

三維陣列更復雜,你應該評估你的建議使用它,因爲它在網絡中的範圍有限。 1D或2D陣列可以解決99%的問題。但以3D陣列將是:

var myArr = new Array(); 
myArr[0] = new Array(); 
myArr[0][0] = new Array() 
myArr[0][0][0] = "Howdy"; 
myArr[0][0][1] = "pardner"; 

alert(myArr[0][0][1]); // Alerts 'pardner' 
1

好了,所以我在這個問題評論說,我覺得你真的需要二維數組。也就是說,如果你有questionIds N個數量和每個questionId有兩個屬性:optionId和optionText

你能以某種方式創建它是這樣的:

var twoD = new Array(); 

twoD[1] = new Array(); 
twoD[1]['optionId'] = 3; 
twoD[1]['optionText'] = 'blabla'; 

twoD[2] = new Array(); 
twoD[2]['optionId'] = 5; 
twoD[2]['optionText'] = null; 

alert(twoD[1]['optionId']); 

雖然注意到關聯密鑰數組實際上是一個對象在JavaScript中。

更新:通過JavaScript

for(var question : twoD){ 
alert(question['optionId']); 
alert(question['optionText']); 
}