2011-02-09 45 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']); 
}