我们很清楚,变量是存储值的容器。有时,开发人员可以一次在一个变量中保存多个值。当一系列值存储在单个变量中时,它被称为数组变量

 

数组声明

数组的声明方式与声明变量的方式相同,只是数组变量的声明使用括号。在以下示例中,括号中提到了数组的大小。

'Method 1 : Using Dim
Dim arr1()	'Without Size

'Method 2 : Mentioning the Size
Dim arr2(5)  'Declared with size of 5

'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
  • 虽然数组大小表示为 5,但它可以容纳 6 个值,因为数组索引从零开始。
  • 数组索引不能为负数。
  • VBScript 数组可以在数组中存储任何类型的变量。因此,数组可以在单个数组变量中存储整数、字符串或字符。

 

为数组赋值

通过针对要分配的每个值指定一个数组索引值,将这些值分配给数组。它可以是一个字符串。

例子

添加一个按钮并添加以下功能。

Private Sub Constant_demo_Click()
   Dim arr(5)
   arr(0) = "1"           'Number as String
   arr(1) = "VBScript"    'String
   arr(2) = 100 		     'Number
   arr(3) = 2.45 		     'Decimal Number
   arr(4) = #10/07/2013#  'Date
   arr(5) = #12.45 PM#    'Time
  
   msgbox("Value stored in Array index 0 : " & arr(0))
   msgbox("Value stored in Array index 1 : " & arr(1))
   msgbox("Value stored in Array index 2 : " & arr(2))
   msgbox("Value stored in Array index 3 : " & arr(3))
   msgbox("Value stored in Array index 4 : " & arr(4))
   msgbox("Value stored in Array index 5 : " & arr(5))
End Sub

当您执行上述函数时,它会产生以下输出。

Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM

 

多维数组

数组不仅限于单个维度,但是,它们最多可以有 60 个维度。二维数组是最常用的。

例子

在下面的例子中,一个多维数组被声明为 3 行 4 列。

Private Sub Constant_demo_Click()
   Dim arr(2,3) as Variant	' Which has 3 rows and 4 columns
   arr(0,0) = "Apple" 
   arr(0,1) = "Orange"
   arr(0,2) = "Grapes"           
   arr(0,3) = "pineapple" 
   arr(1,0) = "cucumber"           
   arr(1,1) = "beans"           
   arr(1,2) = "carrot"           
   arr(1,3) = "tomato"           
   arr(2,0) = "potato"             
   arr(2,1) = "sandwitch"            
   arr(2,2) = "coffee"             
   arr(2,3) = "nuts"            
           
   msgbox("Value in Array index 0,1 : " &  arr(0,1))
   msgbox("Value in Array index 2,2 : " &  arr(2,2))
End Sub

当您执行上述函数时,它会产生以下输出。

Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee

 

ReDim 声明

ReDim 语句用于声明动态数组变量并分配或重新分配存储空间。

语法

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]

参数说明

  • Preserve - 一个可选参数,用于在更改最后一个维度的大小时保留现有数组中的数据。
  • Varname - 一个必需参数,表示变量的名称,应遵循标准变量命名约定。
  • 下标- 一个必需参数,指示数组的大小。

例子

在以下示例中,重新定义了一个数组,然后在更改数组的现有大小时保留这些值。

注意- 调整数组的大小比原来更小时,已消除元素中的数据将丢失。

Private Sub Constant_demo_Click()
   Dim a() as variant
   i = 0
   redim a(5)
   a(0) = "XYZ"
   a(1) = 41.25
   a(2) = 22
  
   REDIM PRESERVE a(7)
   For i = 3 to 7
   a(i) = i
   Next
  
   'to Fetch the output
   For i = 0 to ubound(a)
      Msgbox a(i)
   Next
End Sub
当您执行上述函数时,它会产生以下输出。
XYZ
41.25
22
3
4
5
6
7

 

数组方法

VBScript 中有各种内置函数可帮助开发人员有效地处理数组。下面列出了与数组一起使用的所有方法。请点击方法名称详细了解。

编号 功能说明
1 LBound

一个函数,它返回一个与给定数组的最小下标相对应的整数。

2 UBound

一个函数,它返回一个与给定数组的最大下标相对应的整数。

3 Split

一个函数,它返回一个包含指定数量值的数组。根据分隔符拆分。

4 Join

一个函数,它返回一个字符串,该字符串包含数组中指定数量的子字符串。这是与拆分方法完全相反的功能。

5 Filter

一个函数,它返回一个基于零的数组,其中包含基于特定过滤条件的字符串数组的子集。

6 IsArray

一个函数,它返回一个布尔值,指示输入变量是否为数组。

7 Erase

一个函数,它为数组变量恢复分配的内存。

 

原创文章,转载请注明出处:http://www.nwumba.cn/article/29/