Avatar billede cdull Nybegynder
01. november 2006 - 10:46 Der er 10 kommentarer og
1 løsning

forløkke problem

Jeg har en forløkke som kører igennem et array.
har arrayet mere end 1 værdi virker det fint, er der kun 1 værdi i arrayet går den slet ikke ind.
Hvad kan der være galt?

for(var key in arraytest[selected])
{   
document.forms[0].arrraytest222.options[i] = new Option(arraytest[selected][key]);
i++;
}
Avatar billede olebole Juniormester
01. november 2006 - 11:39 #1
<ole>

Hvordan ser dit array ud?

/mvh
</bole>
Avatar billede cdull Nybegynder
01. november 2006 - 13:00 #2
array1['Name1'] = new Array(1,2,3,4,5);
array1['Name2'] = new Array(1,2,3,4,5);
array1['Name3'] = new Array(1,2,3,4,5);
array1['Name4'] = new Array(1,2,3,4,5);
array1['Name5'] = new Array(1);
array1['Name6'] = new Array(1,2,3,4,5);
Avatar billede olebole Juniormester
01. november 2006 - 14:16 #3
Prøv:

var i = 0;
for(var key in arraytest)
{   
document.forms[0].arrraytest222.options[i] = new Option(arraytest[selected][key]);
i++;
}
Avatar billede olebole Juniormester
01. november 2006 - 14:18 #4
- eller:

var i = 0;
for(var key in array1)
{   
document.forms[0].arrraytest222.options[i] = new Option(array1[key][i]);
i++;
}

- men jeg forstår ikke rigtig, hvad det er, du har gang i  :)
Avatar billede cdull Nybegynder
01. november 2006 - 14:58 #5
Det jeg skal er at gennemløbe det array som array1['Name1'] = new Array(1,2,3,4,5); får tildelt. Dvs. for hvert gennemløb skal jeg have en værdi ud, dvs. 1,2,3,4,5
hvor at for(var key in arraytest[selected]) arraytest[selected] er array1['name1'] og så gennemløbe hvert af de underliggende punkter.
Avatar billede olebole Juniormester
01. november 2006 - 15:05 #6
Så må det vel være noget à la:
  for (var i=0,j=array1['name1'].length; i<j; i++) new Option(array1['name1'][i]);
Avatar billede cdull Nybegynder
01. november 2006 - 15:15 #7
Sådan som jeg skrev det sidste indlæg til dig, gik det op for mig. Har lavet det på præcist samme måde.

for(i=0;array1[selected].length;i++)
{   
document.forms[0].navnetpaaselectenIformen.options[i] = new Option(array1[selected][i]);
}

Mit problem med at hvis der kun er 1 værdi, var stadig gældende. Har fundet ud af at problemet lå i lenght hvis der kun var 1 værdi. Stod der f.eks array1['Name5'] = new Array(5); hvor 5 var enestående værdi, var length på den 5, og ville ikke virke derefter. lavede værdierne om til '5' med 'udenom.
Avatar billede cdull Nybegynder
01. november 2006 - 15:15 #8
Og det virker nu.
Avatar billede olebole Juniormester
01. november 2006 - 15:20 #9
Ja, det er nu ikke så godt at sætte gåseøjne om 5-tallet. Så er det jo pludselig en streng i stedet for et tal. Brug hellere shorthand constuctor'en for array ... f.eks:
    array1['Name4'] = [1,2,3,4,5];
    array1['Name5'] = [5];

- så burde det ikke være et problem  ;o)
Avatar billede cdull Nybegynder
04. november 2006 - 22:29 #10
Kanon olebole. Det virker.
Avatar billede olebole Juniormester
06. november 2006 - 08:34 #11
Fedt! Tak for points  ;o)
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