arrays - VBSCRIPT 数组键

标签 arrays vbscript

我对 vbscript 相当陌生,但由于我更熟悉 Javascript,所以我有点困难。 有人可以帮我一下吗?

vbscript 是否允许使用命名数组键,就像我在下面的示例中所使用的那样?

例如我有:

Dim result(3)
result(age)       = 60
result(firstname) = "Tony"
result(height)    = 187
result(weight)    = 76

msgbox("Age: "    & result(age)       & vbCr &_
       "Name: "   & result(firstname) & vbCr &_
       "Height: " & result(height)    & vbCr &_
       "Weight: " & result(weight)    )

生成的消息框显示:

  Age: 76 
  Name: 76 
  Height: 76 
  Weight: 76 

这似乎将结果数组中的每个元素分配给 76,这 应该只分配给“权重”元素。

发生这种情况是因为 vbscript 只接受整数作为键/ 数组的索引?

非常感谢任何帮助。

谢谢 图尔格

最佳答案

为了实现这一点,您需要使用脚本库中的 Dictionary 对象:-

Dim result : Set result = CreateObject("Scripting.Dictionary")
result.Add "Age", 60
result.Add "Name", "Tony"

等等。您可以通过以下方式检索项目:-

Dim age : age = result("Age")

但是,如果您有一组固定的标识符,您可以考虑定义一个类:-

Class CResult
    Public Age
    Public Name
End Class

Dim result : Set result = new CResult
result.Age = 60
result.Name = "Tony"

MsgBox "Age: "    & result.Age       & vbCrLf & _
   "Name: "   & result.Nname) & vbCrLf

顺便说一句,通常我们使用 CR LF 来换行,而不仅仅是 CR。另外,如果您使用方法或函数作为语句(如上面的 MsgBox 中所示),请勿将参数括在 ( ) 中。

关于arrays - VBSCRIPT 数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372001/

相关文章:

ruby - 如何在 Ruby 中将散列值从字符串转换为数组?

c++ - 在 C++ 程序中合并两个数组

python - 如何在 python 中使用 numpy 获取具有最多给定元素的二维矩阵(列表)中的列和行的索引

caching - 从 HTTP header 获取响应

vbscript - VBScript 上的 "Continue"(到下一次迭代)

python - 从列表中删除相等的元素

arrays - 创建并迭代字典数组的数组

javascript - 将包含双引号的字符串从 node.js 脚本传递给 VBScript

RegExp 不匹配 VBA 中的换行符

regex - VBScript 正则表达式不匹配