【发布时间】:2016-04-26 16:25:30
【问题描述】:
我正在尝试在 vbscript 中为 UFT 编写一个函数,该函数比较两个数组并确保两个数组中的所有值都完全匹配。 但是,值的顺序可能不一致。
Function CompareArrays(array1, array2)
Dim i,j
Dim arrkeys1,arrKeys2
arrkeys1 = array1.keys
arrkeys2 = array2.keys
'Do they have the same number of items?
If array1.Count <> array2.Count Then
CompareArrays = False
Exit Function
End If
'Compare keys and values
For i = 0 To UBound(arrKeys2)
If Not array2.Exists(arrKeys1(i)) Then
'array1 has a key which array2 doesn't have
CompareArrays = False
Exit Function
End If
For j = 0 To Ubound(arrkeys1)
If array1(i) <> array2(j) Then
print "Value"& array1(i) " not found in current position"
CompareArrays = False
Else
print "Value Found"
CompareArrays =True
End If
Next'j
Next 'i
End Function
我认为这个脚本的逻辑可能有问题。 而且我根本没有输出。 该函数应该只返回 CompareArrays 是 True 还是 False。 要比较的数组示例:
dim Array1
set Array1=CreateObject("Scripting.Dictionary")
Array1.Add "Tom", "20"
Array1.Add "Rob", "20"
Array1.Add "Harry", "40"
dim Array2
set Array2=CreateObject("Scripting.Dictionary")
Array2.Add "Rob", "20"
Array2.Add "Tom", "20"
Array2.Add "Harry", "40"
任何帮助将不胜感激。
【问题讨论】:
-
我用一个在线工作示例更新了我的答案,希望对您有所帮助