/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Mig ikke forstå "indexOf()"
Fra : Kurt Hansen


Dato : 11-02-01 16:30

Jeg vil ikke bare konstatere, men også forstå hvad der sker, for
ellers har jeg jo ikke lært noget til næste gang. Her er noget kode:

if (confirm('Tilføj '+nytAntal+' stk. '+nyVare+' til indkøbskurven?'))
index = document.cookie.indexOf("Kurven");
taellerStart = (document.cookie.indexOf("=", index) + 1);
taellerSlut = document.cookie.indexOf(";", index);
if (taellerSlut == -1) {
taellerSlut = document.cookie.length;
}

document.cookie="Kurven="+document.cookie.substring(taellerStart,taellerSlut)+"["+nyVare+"|"+nyPris+"|"+nytAntal+"]";

Allerede i linie 2 er jeg i tvivl om, hvilken værdi der bliver
returneret. Metoden returnerer den position hvor "Kurven" er fundet,
så det er vel 6, eller hvad?

I linie 3 ledes efter lighedstegnet. Positionen returneres (er det 7?)
og søgningen starter ved den position, hvor "Kurven" blev fundet (det
er vel igen 6?) + 1, hvilket vel også er 7?

I linie 4 ledes efter semikolon. Positionen returneres (den kendes
ikke på nuværende tidspunkt) og søgningen starter ved den position,
hvor "Kurven" blev fundet.

I linie 5 og 6 står der, at hvis semikolon ikke findes, sættes
tællerSlut til længden (d.v.s. antal karakterer), som den optalte
streng består af. Og her står jeg helt af: Har den gennemsøgt og
optalt HELE cookien, som jo sagtens kan indeholde 2 eller flere varer
i røven af hinanden?

Til sidst sættes indholdet af cookien. Men, men, men... Sådan som jeg
læser den, kommer den til at bestå af "Kurven=" efterfulgt af den
første vare (renset for knækparanteser) og derefter den næste vare MED
knækparanteser.

Jeg ved godt, at jeg er galt afmarcheret i min analyse, men hvor er
det helt præcist kæden hopper af? Skidtet virker godt nok, men jeg vil
altså gerne vide HVORFOR det virker. En trinvis forklaring vil være
knippelfin.

Venlig hilsen
Kurt Hansen

 
 
Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408532
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste