问题描述:
subcat=new Array()
subcat[]=new Array("市名","省ID","市ID")
document.form.selct2.options[document.form.selct2.length]=new Option(subcat[i][0],subcat[i][2])
我想请问subcat[]是个几维数组,是二维的话.怎么有三个参数,如果是三维数组,那subcat[i][0]是怎么解释,那个三维数组是不是立体的,那么多维数组的话又是怎么样的?
数组的存取原理我也想知道!
解析:
这个不是asp,是页面里的javascript
JS本身不支持多维数组,但是可以在数组元素中储存另外一个数组对象来达到类似多维数组的目的.
subcat=new Array()定义了一个subcat的数组对象
subcat[?]=new Array("市名","省ID","市ID")每个subcat的元素又是一个数组,包括三个元素,分别是"市名","省ID","市ID"
这样就相当于构成了一个类似数据库表的二维数组
像是
subcat[0]的内容就是{"厦门","福建","0"}
subcat[1]的内容就是{"福州","福建","1"}
subcat[2]的内容就是{"泉州","福建","2"}
每个subcat[i]是一个数组
而subcat[i][j] (J=0\1\2)就是一个具体的值
subcat[i][0] 就是第i个数据的市名
数据库其实就是个二维表格,可以用数组表示。ASP中的记录集有个getRows()可以从查询的记录集中取到数组,如:setrs
=
conn.execute("SELECT
*
FROM
admin")dim
RsArrayrsArray
=
rs.GetRows()
rowsCount
=
ubound(rsArray,2)'这是记录数,数组的第二维cellCount
=
ubound(rsArray,1)'这是字段数
'你也可以规定取多少记录如:rsArray
=
rs.getrows(10)'取十条记录
可以看出,数组的第一维是字段,第二维是记录行。所以跟你给出的数组正好相反,asp好像再没有别的方法了。
方法1通过split()函数:dim Arr,Rs
Set Rs=Conn.Execute("select aa from abc")
Arr=""
Do While Not Rs.Eof
If Arr="" Then
Arr=Rs("aa")
Else
Arr=Arr&","&Rs("aa")
End If
Rs.Movenext
loop
Arr=split(Arr,",") 'arr即是你想要的数组
方法2,通过记录集的GetRows方法
‘可取多个字段
Set Rs=Conn.Execute("..........")
Arr=Rs.GetRows()
Rs.Close()
' *** 作Arr
'方法是Arr(Y,X)
'X可以理解成表格的行
'Y就是表格的列
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)