Avatar billede jamola Nybegynder
08. marts 2005 - 11:07 Der er 8 kommentarer og
1 løsning

Loop'e gennem et array med ukendt startindex og slutindex

Mit array kan fx starte med index 50 og slutte med 63 , hvordan loop'er jeg gennem dette array, når jeg ikke kender startindex?

Er der en funktion/metode til at bestemme startindex på et array?
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 11:58 #1
Mener du sådan noget her?

var a = new Array();
a[50]="hejsa50";
a[51]="hejsa51";
a[52]="hejsa52";
a[53]="hejsa53";
a[60]="hejsa60";

for (i=0;i<a.length;i++) {
  if (a[i]) {
    alert(a[i]);
  }
}
Avatar billede olebole Juniormester
08. marts 2005 - 12:42 #2
<ole>

Nej, i JS har et array altid start-indeks 0. Dit array vil derfor aldrig kunne begynde med indeks 50 og slutte med 63. Det vil altid begynde med indeks 0.

Dit array vil således have 64 pladser, hvis det slutter med indeks 63  :)

/mvh
</bole>
Avatar billede roenving Novice
08. marts 2005 - 14:23 #3
-- så du må bruge eriks metode med at teste om værdien eksisterer !-)
Avatar billede jamola Nybegynder
10. marts 2005 - 08:58 #4
Jeg vil gerne give mine points til erikjacobsen hvis du sender et svar.
Avatar billede erikjacobsen Ekspert
10. marts 2005 - 09:07 #5
Fint nok, men jeg samler slet ikke på point, tak.
Avatar billede skyggen2000 Nybegynder
11. marts 2005 - 15:51 #6
Der findes en bedre løsning:

for(var i in a)
    alert(a[i]);

Intet tjek er nødvendigt. For each in J-Script.
Avatar billede olebole Juniormester
11. marts 2005 - 16:08 #7
skyggen2000 >> Der er noget helt fundamentalt i problemstillingen, du ikke har forstået. Et tal-indekseret JS-array kan ikke begynde med andet end '0'. Derfor ved man altid, hvor et JS-array begynder - og man kan således altid itterere igennem det i en alm. for-løkke.

Naturligvis kan du bruge en for/in-løkke, men det er helt uden grund, da du som sagt altid ved, hvor dit array begynder. Det er aldrig nødvendigt at bruge en for/in-løkke i et tal-indekseret JS-array, men den er udmærket til objekter og associative arrays.
Da en for/in-løkke er betydeligt dårligere performende end en alm. for-løkke, er det således en dårligere løsningen ... ikke en bedre.

Det er nok ikke uden grund Ekspertens tre skarpeste JavaScript'ere skriver det samme  ;o)
Avatar billede jamola Nybegynder
11. marts 2005 - 21:43 #8
Tak for interessante indlæg jeg lukker spørgsmålet hvis ingen har lyst til points.
:-)
Avatar billede skyggen2000 Nybegynder
15. marts 2005 - 10:08 #9
Fair nok, slet bedre fra sætningen:)

Man slipper for at den ved en fejl ryger for langt i sit array, og hvis dit array ikke er mega, tror jeg ikke det betyder så meget med performence, ellers har du da ret.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester