Sedan vill jag skicka in en av de lagrade arrayerna in i en funktion
function testArray(myTestArray)
for i = 1 to UBound(myTestArray)
if myTestArray(i) = "2-2" then
testArray = true
end if
next
testArray = false
end function
for x = 1 to 3
if testArray(myArray(x)) then
response.write "Found it"
end if
next
Men det vill sig inte ... går det inte att göra så eller är det nåt annat kai-ko?
Oavsett om mytestArray är 2-2 och testArray då blir satt till true, så blir testArray några rader längre ner ändå satt till false. Ska det verkligen vara så?
En array börjar alltid på 0. Således; om du har en vektor med fem poster finns följande matrisindex i vektorn:
0, 1, 2, 3, 4
Jag gissar att när du räknar från 1 och uppåt så letar allså VBScript efter ett matrisindex som är 5, vilket inte finns. Men, jag har inte kollat närmare på det.
Du skapar en tvådimensionell matris och vill skicka den som endimensionell.
testArray(myArray(x))
Jag är tyvärr inte hemma på hur VBScript hanterar arrays, men det sättet känns fel.
Jag funderar på hur VBScript tolkar myArray(x) som. Blir det en magisk typecast till en endimensionell matris?
Jag skulle skriva om funktionen
Function testArray(myTestArray, intIndex)
For i = 1 To UBound(myTestArray, 2)
If myTestArray(intIndex, i) = "2-2" Then
testArray = true
Exit Function
End If
Next
testArray = false
End Function
For x = 1 To 3
If testArray(myArray, x) Then
Response.Write "Found it"
End If
Next