本文所说的 ASP 数组是指在 ASP 中以默认语言 VBScript 为语言的数组。
样例:
Dim MyArray()
for i = 0 to 10
ReDim Preserve MyArray(i)
MyArray(i)=i
next
下标
- ASP 数组的下标也是从 0 開始的。
- 要获取某个元素的值则在数组变量后面加上括号,括号里标明下标值,比方 arr(0),注意不是中括号,而是小括号。
定义
dim arr2(2) ‘定义静态数组
在变量名称后面加上括号,就形成了数组。假设括号里指定了数值,就表示定义一个静态数组,即固定大小的数组。
代码中
- arr() 定义一个动态数组,须要重定义确定长度后才干使用,关于重定义请參见后面。
- arr2(2) 定义一个下标上限是 2(长度为 3)的静态数组,这与其它语言(比方 C#、JavaScript)有所不同,其它语言的括号里參数表示长度。
erase
erase 动态数组时释放动态数组的存储空间;erase 静态数组时,仅仅是初始化数组的元素值。
redim arr(2)
erase arr
alert(ubound(arr))
‘错误,erase 已经将动态数组的存储空间所有释放。
dim arr(1)
erase arr
alert(ubound(arr))
‘显示 1,erase 仅仅是初始化静态数组的元素值,其占用的空间还在。
重定义 redim
对于动态数组,能够重定义,重定义之后也能够继续重定义;不能对静态数组进行重定义。
dim arr2(2)
dim arr3()
redim arr(0) ‘将数组 arr 的下标上限设为 0(长度为 1)。
redim arr2(1)
‘错误发生。
redim arr3(-1)
‘正确,能够设置为 -1,以表示这个数组长度为 0。
如上重定义数组将导致该数组原有赋值丢失。
重定义 redim preserve
前面讲到重定义数组将导致该数组原有赋值丢失,怎么能保证不丢失呢?用 redim preserve。
redim arr(1)
arr(0) = “1”
alert(arr(0)) ‘显示 1
redim preserve arr(2)
alert(arr(0)) ‘仍然显示 1
UBound
ASP 数组没有获取长度的属性或方法,仅仅有获取下标上限的方法-UBound(数组名称),即数组下标的最大值,比方 UBound(arr)。
Response.Write(UBound(arr)) ‘ 显示上限 1,数组长度为 2
dim arr2()
redim arr2(-1) ‘ 能够为动态数组 redim 上限为 -1,但不能为其它负数,比方 -2 就会报“内存不够”。
Response.Write(UBound(arr2)) ‘ 显示上限 -1,数组长度为 0
dim arr3()
‘Response.Write(UBound(arr3)) ‘ 错误发生
Split
Split 将字符串分隔为数组,例如以下 arr2 是错误的。
dim arr2()
‘错误,这里不能有括号。
arr = Split(“1,2,3”, “,”)
arr2 = Split(“1,2,3”, “,”)
for i = 0 to 10
ReDim Preserve MyArray(i)
MyArray(i)=i
next 样例:
for i = 0 to 10
ReDim Preserve MyArray(i)
MyArray(i)=i
next 样例:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119175.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...