VBS阵列以最简单的方式

时间:2018-08-10 11:39:25

标签: arrays types vbscript mismatch

我无法在VBS中创建未定义的数组。

它应该是需要的时间。我不想用Dim arrnode(10)声明一些限制,例如10左右。我需要一个无限的。

我尝试过:

Dim arrnode    
arrnode(1) = "a"     
arrnode(2) = "b"     
arrnode(3) = "c"     
arrnode(4) = "d" 

许多变化,例如:

Dim arrnode()   
Dim arrnode() As Variant
Dim arrnode() As Variant()

等 这些都不起作用。 仅错误。

请给出一个有效的示例。 我不是在寻找解释,因为我无法理解我在网上一遍又一遍地发现的“变体”解释。 我只需要一个非常简单的数组即可。

2 个答案:

答案 0 :(得分:1)

要创建具有10个插槽的静态(不可调整大小的)数组,请使用

Dim arr(9)

要创建具有10个插槽的动态(可调整大小的)数组,请使用

ReDim arr(9)

在每种情况下,参数都是数组的上边界。由于VBScript数组是从零开始的(索引从0开始),因此元素的数量减去一。

如果要在不知道所需大小的情况下追加到数组,请事先将其创建为空的动态数组:

ReDim arr(-1)

要追加到该数组,您需要先增加其大小:

ReDim Preserve arr(UBound(arr)+1)
arr(UBound(arr)) = "a"

ReDim Preserve arr(UBound(arr)+1)
arr(UBound(arr)) = "b"

...

您可以将其包装在一个过程中以简化处理:

Sub AppendToArray(ByRef a, v)
    ReDim Preserve a(UBound(a)+1)
    a(UBound(a)) = v
End Sub

AppendToArray arr, "a"
AppendToArray arr, "b"
...

但是请注意,在保留数组内容的同时调整数组大小是一个缓慢的操作,因为VBScript会创建一个具有增大的大小的新数组,移动现有数组的内容,然后将现有数组替换为新数组。 / p>

否则,VBScript不支持动态附加到数组。或者,您可以使用System.Collections.ArrayList类,该类确实支持动态调整大小:

Set arr = CreateObject("System.Collections.ArrayList")

arr.Add "a"
arr.Add "b"
...

答案 1 :(得分:0)

有多种方法可以在VBScript中创建数组

具有定义大小的数组

MyPlugin.install = function (Vue, options) {
  // 1. add global method or property
  Vue.myGlobalMethod = function () {
    // something logic ...
  }

  // 2. add a global asset
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // something logic ...
    }
    ...
  })

  // 3. inject some component options
  Vue.mixin({
    created: function () {
      // something logic ...
    }
    ...
  })

  // 4. add an instance method
  Vue.prototype.$myMethod = function (methodOptions) {
    // something logic ...
  }
}

未定义大小的数组

Vue.use(MyPlugin, { someOption: true })

使用Dim arrTest1(3) arrTest1(0) = "1" arrTest1(1) = "2" arrTest1(2) = "3" arrTest1(3) = "4" 函数创建数组

Dim arrTest2()
ReDim arrTest2(3)
arrTest2(0) = "1"
arrTest2(1) = "2"
arrTest2(2) = "3"
arrTest2(3) = "4"

在VBScript中,数组从零开始,并且在声明数组时无法定义变量类型(例如Array

如果不确定数组的大小,可以使用第二个选项。您以后随时可以Dim arrTest3 arrTest3 = Array ("1", "2", "3", "4") 更改其大小。如果您想保护数组数据as Variant,请不要忘记使用ReDim关键字