通过使用JavaScript创建多维数组 [英] create multidimensional array by using javascript

查看:105
本文介绍了通过使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆