我无法在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()
等 这些都不起作用。 仅错误。
请给出一个有效的示例。 我不是在寻找解释,因为我无法理解我在网上一遍又一遍地发现的“变体”解释。 我只需要一个非常简单的数组即可。
答案 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
关键字