Моя функция сравнения массивов работает нормально, когда я добавляю в нее несколько значений.
Но когда оба массива содержат только одно значение, это не работает правильно.
Рабочий скрипт сравнения:
<%
Function InArray(Needle, Haystack)
Dim i, x
InArray = False
If UBound(Haystack)>0 Then
For i = 0 To Ubound(Haystack)
If IsArray(Needle) = True Then
For x = 0 To Ubound(Needle)
If Trim(Haystack(i)) = Trim(Needle(x)) Then
InArray = True
Exit Function
End If
Next
Else
If Trim(Haystack(i)) = Trim(Needle) Then
InArray = True
Exit Function
End If
End If
Next
end if
End Function
Dim HRMarray: HRMarray=array(459,14,2345)
Dim ADSarray: ADSarray=array(459,123,14,3345)
For Each HRMemployee In HRMarray
If (inarray(HRMemployee,ADSarray) = False) then
response.write HRMemployee& " missing in ADSarray <br>"
end if
Next
For Each ADSemployee In ADSarray
If (inarray(ADSemployee,HRMarray) = False) then
response.write ADSemployee& " to much in ADSarray <br>"
end if
Next
%>
Выход Oke:
2345 отсутствует в ADSarray
От 123 до много в ADSarray
3345 на много в ADSarray
Не работает скрипт сравнения:
<%
Function InArray(Needle, Haystack)
Dim i, x
InArray = False
If UBound(Haystack)>0 Then
For i = 0 To Ubound(Haystack)
If IsArray(Needle) = True Then
For x = 0 To Ubound(Needle)
If Trim(Haystack(i)) = Trim(Needle(x)) Then
InArray = True
Exit Function
End If
Next
Else
If Trim(Haystack(i)) = Trim(Needle) Then
InArray = True
Exit Function
End If
End If
Next
end if
End Function
Dim HRMarray: HRMarray=array(459)
Dim ADSarray: ADSarray=array(459)
For Each HRMemployee In HRMarray
If (inarray(HRMemployee,ADSarray) = False) then
response.write HRMemployee& " missing in ADSarray <br>"
end if
Next
For Each ADSemployee In ADSarray
If (inarray(ADSemployee,HRMarray) = False) then
response.write ADSemployee& " to much in ADSarray <br>"
end if
Next
%>
Вывод NOK:
459 отсутствует в ADSarray
459 на много в ADSarray
Этот вывод не является окейским, поскольку оба массива содержат одинаковое содержимое, поэтому он вообще не должен выдавать вывод.
Надеюсь, кто-то увидит, что здесь не так.
С уважением,
Frans