如何在VBScript中搜索数组中的IF语句

如何在VBScript中搜索数组中的IF语句,vbscript,Vbscript,我正在尝试构建一个VBScript函数,该函数将具有一个IF语句,在该语句中,我要确定指定值和填充数组的值之间是否存在值匹配。下面是一段简化的代码片段,用于了解通用功能 Dim val1 Dim arr1(5) val1 = 1234 arr1(0) = 1111 arr1(1) = 2222 arr1(2) = 1234 arr1(3) = 1444 arr1(4) = 1337 if val1 = '''some value in the array (in this case arr1

我正在尝试构建一个VBScript函数,该函数将具有一个IF语句,在该语句中,我要确定指定值和填充数组的值之间是否存在值匹配。下面是一段简化的代码片段,用于了解通用功能

Dim val1
Dim arr1(5)

val1 = 1234
arr1(0) = 1111
arr1(1) = 2222
arr1(2) = 1234
arr1(3) = 1444
arr1(4) = 1337

if val1 = '''some value in the array (in this case arr1(2))''' then
    '''do nothing, end if'''
else
    '''engage the API in the object model I'm working in to perform a function'''
end if

我不确定我在想要查看
val1
是否在
arr1
内的区域中放置了什么。如果它在其中,我想结束循环。如果它不在其中,我想在我正在使用的对象模型中执行一些功能。有人能帮我理解if语句的语法吗

您可以简单地循环数组,并在找到要查找的内容后停止循环

Dim val1
Dim arr1(5)

val1 = 1234
arr1(0) = 1111
arr1(1) = 2222
arr1(2) = 1234
arr1(3) = 1444
arr1(4) = 1337

dim valueInArray
dim foundIt
foundIt = false 'initialize on false

'find the value in the array
for each valueInArray in arr1
    if valueInArray = val1 then
        foundIt = true
        exit for 'stop looping once we found it
    end if
next

if not foundIt then
    '''engage the API in the object model I'm working in to perform a function'''
end if

您还可以使用dictionary对象并使用
Exists
方法来确定该列表中是否有值,但对于这样一个简单的情况,这将是开销。

如果您想在数组中搜索,则必须依赖循环。如果切换到dictionary,则可以使用.Exists方法检查值,而无需任何循环。看看有很多关于这个问题的现有答案。如果不是的话,我建议你把答案贴在那里。