Avatar billede dax Nybegynder
21. november 2000 - 18:32 Der er 5 kommentarer og
1 løsning

En FOR-Løkke der ikke virker

Hvorfor gemmer følgende for-løkke ikke alle felter i det åben dokument i et 2d array. En rettelse ville være meget velkommen.


for(i=0; i<document.forms.length; i++)   
{
for(x=0; x<(document.forms[i].elements.length); x++)
      {
  ar[i,x]=document.forms[i].elements[x].value;
          }
}
Avatar billede erikjacobsen Ekspert
21. november 2000 - 18:33 #1
ar[i][x] i stedet for ar[i,x]    - tror jeg nok ;-)
Avatar billede el_gnu Nybegynder
21. november 2000 - 18:36 #2
dax => hmm, et gæt ud fra den syntaks, er at du normalt koder Pascal ;-)
Avatar billede dax Nybegynder
21. november 2000 - 18:48 #3
Jeg koder egentlig ikke i Pascal(har prøvet det) men i C++builder.

Og nej man kan ikke skrive [i][x] ellers får man  \"et objekt var ventet\", for-løkken kører men der er bare det, at den kun gemmer det første felt i den sidste form
Avatar billede erikjacobsen Ekspert
21. november 2000 - 20:48 #4
Jeg burde lære at lade være med at udtale mig om ting, jeg ikke har forstand på ;-) Og dog.....

Men, nej, arrays er vistnok endimensionelle - det er bare at huske forskel på alle de sprog....
Dette giver beskeden \"Hej\":

  a = new Array();
  a[1,2]=\"hej\";
  alert(a[2]);

fordi kommanotationen 1,2  betyder: udregn 1 og så udregn 2, og resultatet bliver det sidste. Altså 2.

Men arrays er associative. Så du skulle kunne bruge en tekststreng som index:

  a = new Array();
  x=7;
  y=8;
  a[x+\',\'+y]=\"hej\";
  alert(a[\"7,8\"]);

Og sådan laver man altså flerdimensionalle arrays. Pas på én ting, nemlig foranstillede 0-er.
Ovenstående vil ikke virke med:

  alert(a[\"7,08\"]);

som vil give en udefineret værdi.

Så skulle den være på plads!

Avatar billede jakoba Nybegynder
22. november 2000 - 02:52 #5
En anden mulighed er at lade det \"2-dimensionelle\" array bygge sig selv efterhånden:

ar = new Array();                                                    // indføjet linie
for(i=0; i<document.forms.length; i++)   
{
  ar[i] = new Array();                                              // indføjet linie
  for(x=0; x<(document.forms[i].elements.length); x++)
  {
        ar[i][x]=document.forms[i].elements[x].value;  // rettet fra [i,x] til [i][x]
  }
};

så kan du slå op i arrayet uden at skulle generere en streng hver gang.
Avatar billede erikjacobsen Ekspert
22. november 2000 - 12:20 #6
Åh, ja, det var der jeg havde ar[i][x] fra - naturligvis!
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