Avatar billede spiri Nybegynder
22. maj 2001 - 11:46 Der er 6 kommentarer og
1 løsning

Variabler igen igen.

Jeg har et Array:
var tone_edyb = Array(\"f\",\"fis\",\"g\",\"gis\",\"a\",\"bb\",\"h\",\"c\",\"cis\",\"d\",\"dis\",\"e\");


...og skal have en værdi derfra, sådan her:
var tester = tone_edyb[5];

...men edyb skal være variablen streng:
var tester = tone_[streng][5];

Hvordan er det lige syntaxen er der?

Avatar billede jumper Nybegynder
22. maj 2001 - 11:47 #1
var tester = window[\"tone_\" + streng][5];

/Thor
Avatar billede spiri Nybegynder
22. maj 2001 - 11:50 #2
øhh window??

Hvorfor det?
Avatar billede jumper Nybegynder
22. maj 2001 - 11:53 #3
Alle objekter i Javascript er reelt set properties på Global objektet. Når vi er i en browser er Global objektet window objektet, og ellers er det keywordet this (som dog har en speciel betydning i event handlers). Siden objekterne er properties og alle objekter i Javascript dybest set er associative arrays, kan vi bruge array notation til dynamisk at referere et element.

Hvis variablen streng indeholder \"edyb\", er

window[\"tone_\" + streng]

det samme som

window.tone_edyb

og dermed virker ovenstående helt fint ;)

/Thor
Avatar billede jumper Nybegynder
22. maj 2001 - 11:55 #4
Du kunne også have skrevet

this[\"tone_\" + streng]

istedet, dog ikke umiddelbart inde i en event handler funktion, hvorfor jeg valgte window objektet i mit eksempel.

/Thor
Avatar billede spiri Nybegynder
22. maj 2001 - 12:01 #5
Det virker ikke rigtigt. den siger bare at
window[\"tone_\" + streng] ikke er et objekt.

Jeg burde måske lige sige at det ligger inde i en funktion, hvis det har noget at sige.
Avatar billede jumper Nybegynder
22. maj 2001 - 12:24 #6
Det her:

tone_edyb = new Array(0,1,2,3,4,5);
streng = \"edyb\";
tester = window[\"tone_\" + streng][5];
alert(tester)

virker nu fint for mig.

/Thor
Avatar billede spiri Nybegynder
22. maj 2001 - 12:32 #7
Ok. Jeg er den største spade.

var tone_edyb = Array(\"f\",\"fis\",\"g\",\"gis\",\"a\",\"bb\",\"h\",\"c\",\"cis\",\"d\",\"dis\",\"e\");


Må åbenbart ikke hedde

var tone_edyb, men kun

tone_edyb


Så spiller det.

Tak for hjælpen.
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