Selvom det måske kan synes en lidt akademisk diskussion, om vi har at gøre med associative arrays eller objekter, kan dog godt have en vis betydning:
Et associativt array har i JS en length på 0 ...!
Det er jo egentlig noget vrøvl for arrays, hvorfor man faktisk nok ikke bør betragte dem som arrays, men som objekter.
var bla = new Array(); bla["et"] = "ettal"; bla["to"] = "total"; bla["tre"] = "tretal"; alert(bla.length); // Returnerer 0
var bla = new Object(); bla["et"] = "ettal"; bla["to"] = "total"; bla["tre"] = "tretal"; alert(bla.length); // Returnerer 'Undefined'
I begge tilfælde gælder som sagt: alert( bla["to"] ); // Returnerer 'total' alert( bla.to ); // Returnerer 'total'
Derfor kan man også adressere et formfelt med både: document.formnavn.feltnavn document["formnavn"].feltnavn fordi formen ligger som property på document-object'et. Her er dot-notationen iøvrigt en anelse hurtigere ... at tilgå en property er hurtigere, end at 'slå op' i et array. I hvert fald i en laaaang løkke, hvor det gøres mange gange.
Det kan evt. hænge sammen med, at løkken break'es, når property'en er fundet i et objekt - mens der ledes videre til array'et er slut (også efter værdien er fundet), når der er tale om array-notation.
Håber, det kan kaste lidt mere lys over emnet :) /mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.