本文所说的 ASP 数组是指在 ASP 中以默认语言 VBScript 为语言的数组。

样例:

Dim   MyArray()   

    for   i   =   0   to   10   

    ReDim   Preserve   MyArray(i)   

    MyArray(i)=i  

    next

下标

  • ASP 数组的下标也是从 0 開始的。
  • 要获取某个元素的值则在数组变量后面加上括号,括号里标明下标值,比方 arr(0),注意不是中括号,而是小括号。

定义

dim arr() '定义动态数组

dim arr2(2) '定义静态数组

在变量名称后面加上括号,就形成了数组。假设括号里指定了数值,就表示定义一个静态数组,即固定大小的数组。

代码中

  • arr() 定义一个动态数组,须要重定义确定长度后才干使用,关于重定义请參见后面。
  • arr2(2) 定义一个下标上限是
    2(长度为 3)的静态数组,这与其它语言(比方 C#、JavaScript)有所不同,其它语言的括号里參数表示长度。

erase

erase 动态数组时释放动态数组的存储空间;erase 静态数组时,仅仅是初始化数组的元素值。

dim arr()

redim arr(2)

erase arr

alert(ubound(arr)) '错误,erase
已经将动态数组的存储空间所有释放。



dim arr(1)

erase arr

alert(ubound(arr)) '显示
1,erase 仅仅是初始化静态数组的元素值,其占用的空间还在。 

重定义 redim

对于动态数组,能够重定义,重定义之后也能够继续重定义;不能对静态数组进行重定义。

dim arr()

dim arr2(2)

dim arr3()

redim arr(0) '将数组 arr 的下标上限设为 0(长度为 1)。

redim arr2(1) '错误发生。

redim arr3(-1) '正确,能够设置为
-1,以表示这个数组长度为 0。

如上重定义数组将导致该数组原有赋值丢失。

重定义 redim preserve

前面讲到重定义数组将导致该数组原有赋值丢失,怎么能保证不丢失呢?用 redim preserve。

dim arr()

 

redim arr(1)

arr(0) = "1"

alert(arr(0)) '显示 1

 

redim preserve arr(2)

alert(arr(0)) '仍然显示 1

UBound

ASP
数组没有获取长度的属性或方法,仅仅有获取下标上限的方法-UBound(数组名称),即数组下标的最大值,比方 UBound(arr)。

dim arr(1)

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 arr

dim arr2() '错误,这里不能有括号。

arr = Split("1,2,3", ",")

arr2 = Split("1,2,3", ",")
Dim   MyArray()   

  for   i   =   0   to   10   

  ReDim   Preserve   MyArray(i)   

  MyArray(i)=i  

  next 样例:
Dim   MyArray()   

  for   i   =   0   to   10   

  ReDim   Preserve   MyArray(i)   

  MyArray(i)=i  

  next 样例:

最新文章

  1. springmvc @responsebody 406/415问题解决
  2. 使用GDB调试程序
  3. 盲注----基于布尔的SQL盲注
  4. launch文件
  5. 【log4j2 加载配置文件】 加载配置文件的三种方法
  6. [转] Android获取Manifest中<meta-data>元素的值
  7. feedback 是什么意思
  8. POJ 3335 Rotating Scoreboard(半平面交求多边形核)
  9. VMware系统运维(十二)部署虚拟化桌面 Horizon View 5.2 Viewcomposer安装
  10. java开发之IO流
  11. 一个关于Integer的秘密
  12. 浅谈CSS布局
  13. HDU1162-Eddy's picture(最小生成树)
  14. JAVA爬虫代码
  15. 解决用友U8删除用户时提示“用户已启用”不能删除的问题
  16. MongoDB MapReduce用法简介
  17. iOS蓝牙开发之iBeacon技术
  18. GBDT原理详解
  19. English trip -- Phonics 1 ar
  20. ubuntu编译centos7部署大象医生 dr-elephant

热门文章

  1. LAMP网站架构解释
  2. 处理tomcat内存溢出问题
  3. htaccess附录:正则表达式、重定向代码
  4. 20165301实验二java面向对象程序设计
  5. 解决IE的背景颜色透明子元素不透明问题
  6. python开发学习-day04(迭代器、生成器、装饰器、二分查找、正则)
  7. Python全栈开发之5、几种常见的排序算法以及collections模块提供的数据结构
  8. Kail Linux渗透测试教程之Recon-NG框架
  9. Python协程(中)
  10. PHP函数声明(二)