webForumDet fria alternativet

Ändra if sats till en arrey?

ASP

3 svar · 205 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1
if (t = "voigt") or (t = "dig") or (t = "child") or (t = "pixel") or (t = "ballon") or (t = "blue") then

skulle man kunna göra en arrey med "voigt,dig,child,pixel,ballon,blue mm" så man slipper skriva många OR satser???

Medlem sedan juli 2001203 inlägg
#2
arr = array("voigt","dig","child","pixel","ballon","blue")

if ubound(filter(arr,t))>0 then

end if

Detta kan nog funka...

Medlem sedan juni 20019 519 inlägg
#3

fungerade inte riktigt som jag ville.. fungerade inte alls bra :e

if (t = "voigt") or (t = "dig") or (t = "child") or (t = "pixel") or (t = "ballon") or (t = "blue") then
  response.write "document.write(""" & textpic(nollor&count,t) &""")"
else
  response.write "document.write(""" & nollor&count &""")"
end if

så ser hela koden ut ..

Medlem sedan maj 200010 687 inlägg
#4

Ett dictionary är lämpligt. Snabbare än arrayer när man letar. Dictionariet gör en slags checksum av namnet som hjälper när den letar efter värdet vilket gör att det går snabbare. Speciellt när man har mycket i dictionariet.

Set dic = Server.CreateObject("Scripting.Dictionary")

dic("voigt") = 1 : dic("dig") = 1 : dic("child") = 1
dic("pixel") = 1 : dic("ballon") = 1 : dic("blue") = 1

If dic.Exists(t) Then

End If

Set dic = Nothing

Vill du ha det case-insensitive så kan du slänga in dic.CompareMode = 1 'TextCompare direkt efter Server.CreateObj... :)

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)