任何人都可以帮助我在javascript中创建和解析3d数组。
我有一个问题每个问题ID都有一个选定的选项和一个可选的选项文本。
所以我需要为questionId,optionId,optionText(string)创建一个3d数组..
事先提前
答案 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'
现在你可以使用递归函数迭代数组并检查并削减每一件事。