22. oktober 2002 - 14:36
Der er
23 kommentarer og 1 løsning
Array fest
Jeg har et array med navne i. Disse navne skal tilfældigt deles op i 5 andre arrays !! Her er mit mislykkede script function lavGrupper() { navne = new Array(); navne.push("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); gruppe1 = new Array(); gruppe2 = new Array(); gruppe3 = new Array(); gruppe4 = new Array(); gruppe5 = new Array(); brugt = new Array(); while(brugt.length < navne.length) { tal = random(navne.length); if(brugt.indexOf(navne[tal]) == -1) { brugt.push(navne[tal]); this["gruppe" + gruppe].push(navne[tal]); } gruppe++; if(gruppe == 6){ gruppe = 1; } } trace(gruppe1.toString()); trace(gruppe2.toString()); trace(gruppe3.toString()); trace(gruppe4.toString()); trace(gruppe5.toString()); } Hjælp !!
Annonceindlæg fra Barco
22. oktober 2002 - 21:50
#1
function lavGrupper() { navne = new Array(); navne.push("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); gruppe0 = new Array("ja"); gruppe1 = new Array(); gruppe2 = new Array(); gruppe3 = new Array(); gruppe4 = new Array(); while (navne.length>0) { this["gruppe"+random(5)].push(navne.shift()); } trace(gruppe0.toString()); trace(gruppe1.toString()); trace(gruppe2.toString()); trace(gruppe3.toString()); trace(gruppe4.toString()); } Et forslag :-)
22. oktober 2002 - 21:52
#2
glem mit "ja" i gruppe0 - bare et tjek for at få respons mens jeg prøvede!
23. oktober 2002 - 16:00
#3
alexander>> Udmærket. Men der skal være lige mange i hver gruppe ! Kan du klare den ?
23. oktober 2002 - 19:27
#4
navne = new Array(); navne.push ("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); gruppe0 = new Array(); gruppe1 = new Array(); gruppe2 = new Array(); gruppe3 = new Array(); gruppe4 = new Array(); while (navne.length>0) { for(i=0; i<5; i++) { this["gruppe"+i].push(navne.shift(random(navne.length))); } } trace(gruppe0.toString()); trace(gruppe1.toString()); trace(gruppe2.toString()); trace(gruppe3.toString()); trace(gruppe4.toString()); Kan den bruges?
24. oktober 2002 - 20:00
#5
legende det er svært at putte lige mange i hver gruppe, når antallet af grupper ikke går op i antallet af navne - derfor bliver der i dette tilfælde nød til at være en gruppe der har en flere end de andre!
24. oktober 2002 - 20:01
#6
Ellers må jeg til at skære en af dem i stykker (lol)
25. oktober 2002 - 12:25
#7
navne = new Array(); navne.push("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20");antantalGrupper = 5; gruppe = new Array(); for (i = 0; i < antalGrupper; i++) gruppe[i] = new Array(); navne.sort(function(a,b){random(3)-1;}); for (var n = navne.pop(), var i = 0; navne.length; n = navne.pop(); i++) gruppe[i%antalGrupper].push(n); Hopla :o)
25. oktober 2002 - 12:26
#8
Tricket er at lave sit array af navne og randomize dette... Herefter kan man jo bare poppe alle elementerne og putte dem i hver sin stak... :o)
25. oktober 2002 - 12:27
#9
Det der antantalGrupper er antalGrupper på en ny linie...
25. oktober 2002 - 14:53
#10
Er væk i weekenden og først tilbage mandag...
25. oktober 2002 - 17:03
#11
Tak for jeres begges forslag. Men alexander>> din laver de samme grupper hver gang !! og Barklund>> "identifyer expected" Er det virkelig så svært ?
25. oktober 2002 - 18:04
#12
Sorry havde ikke kigget mit forrige forsøg ordenligt igennem - men den her skulle virke :-) navne = new Array(); navne.push ("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); gruppe0 = new Array(); gruppe1 = new Array(); gruppe2 = new Array(); gruppe3 = new Array(); gruppe4 = new Array(); while (navne.length>0) { for(i=0; i<5; i++) { xxx = random(navne.length); this["gruppe"+i].push(navne[xxx]); navne.splice(xxx,1); } } trace(gruppe0.toString()); trace(gruppe1.toString()); trace(gruppe2.toString()); trace(gruppe3.toString()); trace(gruppe4.toString());
25. oktober 2002 - 18:20
#13
Den laver sq også de samme grupper hver gang. Prøv den evt. med en forløkke !! Der er ingen ændring fra gang til gang !
25. oktober 2002 - 18:21
#14
Nej undskyld !!!! Min fejl. Det virker glimrende (o;
25. oktober 2002 - 23:33
#15
np - og tak for point ;-) Sjovt at kunne hjælpe en der ligger nr. 7 på flashranglisten og som jeg respekterer som en god flasher :-)!
26. oktober 2002 - 15:53
#16
Jamen jeg er bedst til at få ting til at bevæge sig på den rigtige måde med scripts. Variabelhåndtering og array's er ikke mit speciale (o; - tek for hjælpen, alexander
28. oktober 2002 - 12:19
#17
Jeg synes stadig, at min version er kønnere... Følgende virker: navne = new Array(); navne.push("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); antalGrupper = 5; gruppe = new Array(); for (i=0; i<antalGrupper; i++) gruppe[i] = new Array(); navne.sort(function (a,b) { return random(3)-1;}); for (var i = 0; navne.length; i++) gruppe[i%antalGrupper].push(navne.pop()); trace(gruppe.join("\n"));
28. oktober 2002 - 15:40
#18
Jep., Barklund... Den virker perfekt, hvad siger i to så, hvis man skal kunne sikre at f.eks Mads og Per kommer i samme gruppe ?? Så skal man vel skrive en metode, der finder ud af hvilken gruppe personerne er i, sammenligne, og hvis de er forskellige, skal den køre funktionen een gang til ?? Jeg skal nok give nye points, for svar på dette (o;
28. oktober 2002 - 15:56
#19
Der skal stadig komme lige mange i her (underforstået at det går op)?
28. oktober 2002 - 15:56
#20
her = hver even
28. oktober 2002 - 16:02
#21
Ja. Der skal være lige mange i hver gruppe, men man skal kunne sige f.eks navn1 = "Emil"; navn2 = "Jeppe"; og de skal så havne i samme gruppe (o;
28. oktober 2002 - 17:09
#22
fx: navne = new Array(); navne.push("Emil", "Asger", "Mads", "Lennart", "Allan", "Jesper", "Muhammed", "Mehmed", "Per", "Jeppe"); navne.push("Nikolaus", "1", "2", "3", "4", "5", "6", "7", "8", "9"); navne.push("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"); join = [["Mads", "Per"],["Lennart","2"]]; Og så kommer mads og per hhv. lennart og 2 i samme gruppe?
28. oktober 2002 - 17:10
#23
Eller vil det altid kun dreje sig om et par og aldrig et triple eller to par eller noget andet? Hvilke variationer er der, spørger jeg faktisk om?
28. oktober 2002 - 17:12
#24
Det var egentlig bare to eller tre personer, der skulle i samme gruppe uanset hvad. Ikke mere !
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.