Avatar billede lightbrain Nybegynder
22. september 2002 - 10:46 Der er 11 kommentarer og
1 løsning

Array

Hej

Jeg vil gerne vil, om man kan lave et check på om det array-element, som skal retuneres, faktisk eksisterer (således at man ikke retunerer noget, som ligger uden for arrayet).

Hvordan gør man det?

var opslag = new Array( "Hjemmeside", "Sektion", "Emne", "Artikel" );

return opslag[no];
Avatar billede Slettet bruger
22. september 2002 - 10:55 #1
var opslag = new Array( "Hjemmeside", "Sektion", "Emne", "Artikel" );

if(no > opslag.length)
    return "Ikke fundet";
else
    return opslag[no];
Avatar billede lightbrain Nybegynder
22. september 2002 - 10:59 #2
Super - tak for det.

Du får 15 points oven i dette indlæg, hvis du også kan hjælpe med et andet spg.

Prøv at se den nedereste kommentar i: http://exp.dk/spm/260074
Avatar billede Slettet bruger
22. september 2002 - 12:34 #3
Det må vel være:

if (no >= opslag.length)
return "Ikke fundet";

Ellers kan man jo risikere at lede efter opslag[3], når der kun er tre elementer i arrayet!

Min favorit er følgende:

if (opslag[no] == 'undefined')
return "Bla!!";
Avatar billede Slettet bruger
22. september 2002 - 14:09 #4
Endnu nemmere ville det være at sige:

return opslag[no-1];

Det må jo være det samme.
Avatar billede Slettet bruger
22. september 2002 - 15:13 #5
magik>> ??
Det samme som hvad?

Spørgsmålet gik ud på at finde en metode, der sørger for, at man ikke returnerer en undefined værdi!
Avatar billede Slettet bruger
22. september 2002 - 15:18 #6
phoenixv: Rolig, rolig :)

Hvis vi nu siger at der er fire elementer, så vil det højeste index jo være 3. Derfor vil en test på længden af tabellen og returnering af værdien i opslag[no-1] ikke kunne returnere "undefined".
Avatar billede Slettet bruger
22. september 2002 - 15:33 #7
Jeg er da rolig! :)

Men hvem siger, at no indeholder længden af arrayet? Og hvorfor skulle han ønske kun at returnere arrayets sidste element?
Avatar billede Slettet bruger
22. september 2002 - 15:41 #8
Umiddelbart vil jeg tro at no er en parameter der sendes over til en funktion. Ellers vil det ikke give så meget mening  :)
Avatar billede Slettet bruger
22. september 2002 - 15:49 #9
Eh? Nu er jeg slet ikke med?

Hvis no en parameter, der blev sendt til funktionen, hvorfor så returnere en anden værdi, en den, der bedes om?
Avatar billede Slettet bruger
22. september 2002 - 15:50 #10
Og desuden løser det slet ikke problemet, for man kan jo bare kalde funktionen med:

funktionsNavn(999);

Og så har vi jo den samme ballade (med mindre arrayet rent faktisk er 999 poster stort)!
Avatar billede lightbrain Nybegynder
22. september 2002 - 15:55 #11
>Men hvem siger, at no indeholder længden af arrayet?
Ikke i mit tilfælde, "no" er en pointer (som er forskellige fra gang til gang), som fortæller hvilken array-celle, der skal retuneres værdien fra.
Avatar billede Slettet bruger
22. september 2002 - 15:57 #12
Ja, og derfor bør du sige følgende:

if (opslag[no] == 'undefined')
return "Ikke fundet!";
return opslag[no];
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