Avatar billede lightbrain Nybegynder
30. juni 2002 - 14:27 Der er 17 kommentarer og
3 løsninger

Stop den løkke

Hej

Hvordan ombygges følgende, således at løkken stopper, når det ønskede objekt er blevet fundet (med andre ord; at løkken ikke bliver ved med at lede, efter at den har fundet det ønskede element)?


for (var i = 1;i < gruppe[1].length; i++)  {     
                            if ( gNum == gruppe[1][i].artikelnr ) {
                                  document.AdminA.artikelnr.value = gruppe[1][i].artikelnr;
                                  document.AdminA.titel.value = gruppe[1][i].titel;
                                  document.AdminA.forfatter.value = gruppe[1][i].forfatter;
                                  document.AdminA.beskrivelse.value = gruppe[1][i].beskrivelse;
                                  document.AdminA.filnavn.value = gruppe[1][i].filnavn;
                              }
                          }
Avatar billede Slettet bruger
30. juni 2002 - 14:29 #1
Sæt:

break;

ind i slutningen af din if.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 14:42 #2
Det ville selvfølgelig også virke, men jeg tænkte mere på, om ikke det var bedre programmering at ombygge/erstatte "for" og "if" med en anden form for lykke, hvis formål kun var at finde et enkelt objekt og så standse automatisk.

(I så fald at en sådan ikke findes, godtager jeg selvfølgelig dit svar)
Avatar billede jakoba Nybegynder
30. juni 2002 - 14:58 #3
du kunne også lave fx en boolan variabel uden for løkken der efterhånden sættes til true for fundet:

var OK = false
for (var i = 1;i < gruppe[1].length && !OK; i++)  {   
                            if ( gNum == gruppe[1][i].artikelnr ) {
                                  document.AdminA.artikelnr.value = gruppe[1][i].artikelnr;
                                  document.AdminA.titel.value = gruppe[1][i].titel;
                                  document.AdminA.forfatter.value = gruppe[1][i].forfatter;
                                  document.AdminA.beskrivelse.value = gruppe[1][i].beskrivelse;
                                  document.AdminA.filnavn.value = gruppe[1][i].filnavn;
                                  OK = true;
                              }
                          }

men det er på ingen måde en forbedring, og gør præcis det samme som mercur8's break.
Jeb ville bruge break.
Avatar billede =maddog= Nybegynder
30. juni 2002 - 15:00 #4
for (var i = 1;i < gruppe[1].length && gNum != gruppe[1][i].artikelnr ; i++)  {   
                            if ( gNum == gruppe[1][i].artikelnr ) {
                                  document.AdminA.artikelnr.value = gruppe[1][i].artikelnr;
                                  document.AdminA.titel.value = gruppe[1][i].titel;
                                  document.AdminA.forfatter.value = gruppe[1][i].forfatter;
                                  document.AdminA.beskrivelse.value = gruppe[1][i].beskrivelse;
                                  document.AdminA.filnavn.value = gruppe[1][i].filnavn;
                              }
                          }
Avatar billede =maddog= Nybegynder
30. juni 2002 - 15:02 #5
ok principielt det samme som jakoba's.
Avatar billede Slettet bruger
30. juni 2002 - 15:03 #6
maddog: Så vil if sætningen da aldrig blive udført.

lightbrain: Hvis du vil lave en anden form for løkke skal du bruge en do .. while.
Avatar billede Slettet bruger
30. juni 2002 - 15:05 #7
Min fejl. Ignorer ovenstående.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 15:05 #8
>...skal du bruge en do .. while.
Lad mig endelig se, hvordan det gøres.
Avatar billede Slettet bruger
30. juni 2002 - 15:05 #9
lightbrain: Det var mig der vrøvlede mht. til maddog's indlæg. Det vil virke.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 15:08 #10
Ok, men er det ikke mere programmeringsmæssigt korrekt at bruge "do...while", når man kun skal finde et enkelt objekt?
Avatar billede Slettet bruger
30. juni 2002 - 15:10 #11
Nææ ... jeg mener alle 3 forslag er lige korrekte.
Du vinder intet performance mæssigt, ved at anvende den ene frem for den anden.

Tag den mulighed, du bedst kan lide og overskue.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 15:16 #12
Ok, jeg forhøjer lige pointene, da indlæget er blevet en længere (end planlagt).

>>jakoba og =maddog=
Hvis I vil have nogle points, så tryk lige svar.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 15:22 #13
Afslutningsvis vil jeg gerne gøre lidt reklame med et andet indlæg, som - selvom det er placeret under 'ASP' - er blevet til et javascript spørgsmål. (I behøver kun at læse de allersidste kommentarer): http://www.eksperten.dk/spm/228028
Avatar billede mikoalngelo Nybegynder
30. juni 2002 - 15:24 #14
var i = 1
while (gNum == gruppe[1][i].artikelnr) {     
  i++
}

document.AdminA.artikelnr.value = gruppe[1][i].artikelnr;
document.AdminA.titel.value = gruppe[1][i].titel;
document.AdminA.forfatter.value = gruppe[1][i].forfatter;
document.AdminA.beskrivelse.value = gruppe[1][i].beskrivelse;
document.AdminA.filnavn.value = gruppe[1][i].filnavn;
Avatar billede =maddog= Nybegynder
30. juni 2002 - 15:27 #15
elegant miko. men det skal være
while (gNum != gruppe[1][i].artikelnr)
Avatar billede Slettet bruger
30. juni 2002 - 15:29 #16
mikoalngelo: Du må mene gNum != gruppe[1][i].artikelnr

Og nu har jeg ikke megen forstand på javascript, men starter array indexering ikke ved 0? For så skal det jo være, var i = 0 også.
Avatar billede mikoalngelo Nybegynder
30. juni 2002 - 15:32 #17
Ups, jo =maddog=

mercur8 Spørg lyshjerne om det...
Avatar billede =maddog= Nybegynder
30. juni 2002 - 15:32 #18
mercur8> principielt jo, men for løkken starter også ved 1. Det kan være at index 0 er reserveret til labels f.x. Vi kender jo ikke den bagved liggende kode.
Avatar billede lightbrain Nybegynder
30. juni 2002 - 15:36 #19
Super - tak for alle besvarelserne :-)
Avatar billede mikoalngelo Nybegynder
30. juni 2002 - 15:37 #20
sæl tak do
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