Avatar billede webstuff Nybegynder
12. februar 2006 - 00:15 Der er 8 kommentarer og
1 løsning

vælg tilfældigt ud af array..

Jeg vil gerne vælge et tilfældigt felt ud af mit array.
var rows = new Array;
rows[0]=20;
rows[1]=40;
osv osv osv..

så har jeg også disse variabler:
var tal = Math.random()*24

og så i en funktion vil jeg gerne hente et tilfældigt felt ud af mit array.
Har prøvet med "text.style.left = rows[tal]" men det virker ikke :-(

Det er sikkert utroligt simpelt, men har ikke arbejdet med javascript så meget, så er ikke helt inde i syntaksterne :-)
Avatar billede Slettet bruger
12. februar 2006 - 00:35 #1
Noget a la dette?

var arr = new Array();
arr[0] = "hej";
arr[1] = "dav";
arr[2] = "fætter";

function randomValue(a) {
  return a[Math.floor(Math.random()*a.length)];
}

document.write(randomValue(arr));
Avatar billede webstuff Nybegynder
12. februar 2006 - 00:40 #2
hvis du f.eks har denne kode:

<script type="text/javascript">
var rows = new Array;
rows[0]=20;
rows[1]=40;
rows[2]=60;

function funk(){
text.style.left = rows[_random_tal_]
}
</script>

hvordan ville du får "text.style.left" til at blive lig med et random udtræk fra arrayet? :-)
Avatar billede Slettet bruger
12. februar 2006 - 00:44 #3
Det er helt korrekt at tilgå værdien på den måde. Men hvad er text for et objekt? Hvor har du det fra?
Avatar billede webstuff Nybegynder
12. februar 2006 - 00:46 #4
text = getElementById("text"):

men det virker, hvis jeg skriver f.eks rows[0] altså hvor jeg tager et bestemt udtræk fra arrayet :-)
Avatar billede Slettet bruger
12. februar 2006 - 00:48 #5
Ah, det er fordi funktionen getElementById() tilhører document.

Eks:

text = document.getElementById('text');
Avatar billede webstuff Nybegynder
12. februar 2006 - 01:00 #6
Ja undskyld, det var også det jeg mente..

men hvis jeg f.eks skriver:
function funk(){
text.style.left = rows[0]
}
så virker det, men hvordan får jeg det til at blive et tilfældig? den siger "Argument ugyldigt" hvis jeg prøver :-(
Avatar billede Slettet bruger
12. februar 2006 - 01:02 #7
Med den funktion jeg skrev allerførst:

function randomValue(a) {
  return a[Math.floor(Math.random()*a.length)];
}

function funk() {
  text.style.left = randomValue(rows);
}
Avatar billede webstuff Nybegynder
12. februar 2006 - 01:05 #8
Jeg har fået det til at virke.. Tak for hjælpen :-D
Avatar billede Slettet bruger
12. februar 2006 - 01:10 #9
Selv tak... :)
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