Я пытаюсь написать функцию для UFT в vbscript, которая сравнивает два массива и гарантирует, что все значения в обоих массивах точно совпадают. Однако порядок значений может быть непоследовательным.Функция для сравнения массивов в Vbscript
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"
Любая помощь будет высоко оценили.
Я обновил свой ответ рабочим примером в Интернете, надеюсь, что поможет –