通过使用JavaScript创建多维数组 [英] create multidimensional array by using javascript
问题描述
这是一个很奇怪,我居然。我无法弄清楚如何动态地创建一个多维数组。我想创建一个三级下拉列表,所以我想我需要一个三维阵列来存储值。如何创建三维阵列?
< SCRIPT LANGUAGE = JavaScript的>VAR一个疗程=新的Array();
一个疗程[0] =新的Array();
一个疗程[1] =新的Array();
一个疗程[2] =新的Array();
一个疗程[3] =新的Array();一个疗程[0] [0] =选择......;
一个疗程[1] [0] =选择......;
一个疗程[1] [1] =T坊;
一个疗程[1] [2] =V坊;
一个疗程[1] [3] =广场;
一个疗程[1] [4] =B广场;
一个疗程[1] [5] =G坊;
一个疗程[2] [0] =选择......;
一个疗程[2] [1] =N坊;
一个疗程[2] [2] =W坊;
一个疗程[3] [0] =选择......;
一个疗程[3] [1] =j坊;
一个疗程[3] [2] =M广场;功能ChangeCourse()
{
VAR我,
iCategoryIndex;
iCategoryIndex = document.frm.optCategory.selectedIndex;
iCourseCount = 0;
而(一个疗程[iCategoryIndex] [iCourseCount]!= NULL)
iCourseCount ++;
document.frm.optCourse.length = iCourseCount;
对于(i = 0; I< = iCourseCount-1;我++)
document.frm.optCourse [I] =新的选项(一个疗程[iCategoryIndex] [I]);
document.frm.optCourse.focus();
}< / SCRIPT>
<身体的onfocus = ChangeCourse()>
< H3>选择种类...< / H3 GT&;
<表格名称=FRM>
< P>类别:
<选择名称=optCategory大小=1的onChange = ChangeCourse()>
<选项>选择...< /选项>
<选项>&足球LT; /选项>
<选项>&板球LT; /选项>
<选项>&橄榄球LT; /选项>
< /选择>
&所述; / P>
&所述p为H.;字段
<选择名称=optCourse大小=1>
<选项>选择...< /选项>
< /选择>
&所述; / P>
< /表及GT;
如果您唯一的问题是创建三维数组,这应该工作:
VAR一个疗程= [];对于(VAR I = 0; I< dimensionOneSize;我++){
一个疗程[I] = [];
对于(VAR K = 0; K< dimensionTwoSize; k ++)
一个疗程[I] [K] = [];
}
这是很好的注意,JavaScript的支持用方括号 []
数组的短手的定义,所以你可以使用它们来使动态清晰度更清洁。
可能地缩短
此外,我不知道这工作得非常好,但它可能:
VAR一个疗程= [[[]]];
到目前为止,我的测试并未证明的方式来利用这一点,但它确实验证为一个适当的脚本。
This is a very strange to me actually. I can't figure out how create a multidimensional array dynamically. I want to create a three-level drop-down list, so I think I need a three dimensional array to store the values. How to create three dimensional array?
<script language=javascript>
var aCourse=new Array();
aCourse[0]=new Array();
aCourse[1]=new Array();
aCourse[2]=new Array();
aCourse[3]=new Array();
aCourse[0][0]="Select...";
aCourse[1][0]="Select...";
aCourse[1][1]="T Square";
aCourse[1][2]="V Square";
aCourse[1][3]="S Square";
aCourse[1][4]="B Square";
aCourse[1][5]="G Square";
aCourse[2][0]="Select...";
aCourse[2][1]="N Square";
aCourse[2][2]="W Square";
aCourse[3][0]="Select…";
aCourse[3][1]="J Square";
aCourse[3][2]="M Square";
function ChangeCourse()
{
var i,
iCategoryIndex;
iCategoryIndex=document.frm.optCategory.selectedIndex;
iCourseCount=0;
while (aCourse[iCategoryIndex][iCourseCount]!=null)
iCourseCount++;
document.frm.optCourse.length=iCourseCount;
for (i=0;i<=iCourseCount-1;i++)
document.frm.optCourse[i]=new Option(aCourse[iCategoryIndex][i]);
document.frm.optCourse.focus();
}
</script>
<body ONfocus=ChangeCourse()>
<h3>Choose category…</h3>
<form name="frm">
<p>Category:
<select name="optCategory" size="1" onChange=ChangeCourse()>
<option>Select…</option>
<option>Soccer</option>
<option>Cricket</option>
<option>Rugby</option>
</select>
</p>
<p>Fields
<select name="optCourse" size="1">
<option>Select…</option>
</select>
</p>
</form>
If your only problem is creating the three-dimensional array, this should work:
var aCourse = [];
for(var i = 0; i < dimensionOneSize; i++) {
aCourse[i] = [];
for(var k = 0; k < dimensionTwoSize; k++)
aCourse[i][k] = [];
}
It is good to note that JavaScript supports the short-hand definition of an array with square brackets []
, so you can use those to make the dynamic definition cleaner.
Possibly Shorter
Also, I'm not sure if this works very well, but it might:
var aCourse = [[[]]];
So far, my testing has not proven a way to use this, but it does validate as a proper script.
这篇关于通过使用JavaScript创建多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!