数组函数

使用数组时，有三个函数是你必须掌握的。函数UBOUND()返回一个数组的大小。确切地说，它可以返回数组的某一维的大小。这里有这个函数的一些例子：

<%

DIM Product(10,33)

%>

<%=UBOUND(Product)%>

<%=UBOUND(Product,1)%>

<%=UBOUND(Product,2)%>

在这个例子中，第一个UBOUND（）函数返回值是10。在缺省情况下，这个函数返回的是一个函数的第一维的上界。

第二个UBOUND（）函数的返回值与第一个相同。它返回的是数组Product的第一维的上界。

警告

虽然数组的某一维的第一个索引值总是0，但其第一维总是用1表示，不要混淆了维数与索引。

最后，第三个UBOUND（）函数的返回值是33。这是数组Product的第二维的维数。

当一个数组不是你声明的，但你需要确定这个数组的大小时，函数UBOUND（）是有用的。例如，在第23章“使用记录集中”，你将学习如何从一个数据库表中把记录取到数组中。如果你需要知道这项操作所产生的数组的大小，你可以使用函数UBOUND（）。（知道一个数组的大小使你能够遍历和显示它的所有元素。）

VBScript有一个ERASE语句，可以用来操作固定大小的数组和动态数组。通过对一个静态数组使用ERASE语句，你可以清除这个数组。如果该数组是一个字符串数组，ERASE语句把该数组的所有元素重新 初始化为空字符串

””。如果该数组是一个数值数组，ERASE语句可以把该数组的所有元素重新初始化为0。这里有一些例子：

<%

DIM Product(2)

Product(1)=

”Running shoes”

ERASE Product

%>

<%=Product(1)%>

当这个脚本执行时，不会输出任何信息。ERASE语句清除了数组Product的所有数据，不论有多少元素被分配了值。

当对动态数组使用ERASE语句时，它的作用与上述的不同。当你对动态数组使用ERASE语句时，该数组本身会被删除。在你能重新使用这个数组之前，你必须对它重新初始化。如下例所示：

<%

DIM Product()

REDIM Product(100)

Product(1)=

”Running Shoes”

ERASE Product

%>

这个脚本创建了一个名为Product的动态数组。该数组的索引值为1的元素被赋了一个值。然后，用ERASE语句删除了这个数组。如果你在它被删除之后试图访问这个数组的任何一个元素，则将会发生错误。

当你删除了一个数组后，内存就被释放。对一个访问率很高的站点来说，每一字节的内存都很珍贵。因此当你不再需要一个动态数组时，用ERASE语句删除它是个不错的主意。

操作数组的最后一个有用的函数是ISARRAY（）。函数ISARRAY（）可以用来测试一个变量表达式是否是一个数组。这里有一个例子：

<%

DIM Product(10)

DIM somevar

%>

<%=ISARRAY(Product)%>

<%=ISARRAY(somevar)%>

在这个例子中，第一个ISARRAY（）函数返回TRUE，因为Product实际上是一个数组。第二个ISARRAY（）函数返回FALSE，因为变量somevar没有被声明为一个数组。