在javascript中创建和解析3D数组?

时间:2011-02-09 10:32:52

标签: javascript

任何人都可以帮助我在javascript中创建和解析3d数组。

我有一个问题每个问题ID都有一个选定的选项和一个可选的选项文本。

所以我需要为questionId,optionId,optionText(string)创建一个3d数组..

事先提前

4 个答案:

答案 0 :(得分:17)

一维数组将是:

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'

3D阵列更复杂,您应该评估您对它的使用建议,因为它在网络中的范围有限。使用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 :(得分: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]);
}

在任何情况下,在某些时候你都需要一个循环来用子数组填充你的初始数组以获得2d效果。

答案 2 :(得分:1)

好的,正如我在评论中所说,我认为你实际上需要2D数组。也就是说,如果你有N个问题ID,每个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']);
}

答案 3 :(得分:0)

您可以在javascript中创建第n个维度错误,其中一个示例位于

之下

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

现在你可以使用递归函数迭代数组并检查并削减每一件事。