Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[JS] Variabele naam opbouwen uit andere variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kan iemand mij vertellen hoe ik in Javascript een variabelenaam op kan bouwen met andere variabelen.

var word_1 = 'aap';
var word_2 = 'noot';

function showWord(i){
alert('word_'+i);
}

De code met '"'word_'+i" werkt hier niet, ik vermoed iets met haakjes, maar krijg het niet voor elkaar.(ben een php/actionscript man... mijn JS is niet geweldig)

Bedankt

  • Counter-Strike
  • Registratie: Maart 2000
  • Niet online

Counter-Strike

Maar ik speel het niet!

eval() Maar wat je wilt is ranzig, denk in deze opzet eerder aan een array van Strings als datatype.

Dit is het einde van deze mededeling. De mogelijkheid tot reageren is aanwezig!


Verwijderd

Topicstarter
voorbeeldje wat ik geef was alleen ter verduidelijking van mijn vraag...
De daadwerke code is een stuk netter...


Maar als

alert(eval('word_'+i));

in dit voorbeeld werkt dan kan ik vooruit.

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Waarschijnlijk doe je heel moeilijk, want elke situatie met variabele variabelen is te voorkomen.
alert(eval('word_'+i));
Zie de reactie van Counter-Strike: kan je geen array maken van die string variabele? Dan kan je gewoon alert(word[i]) doen.

  • Juup
  • Registratie: Februari 2000
  • Niet online
Dit is in het algemeen een teken dat je ergens een designfout in je code hebt. Voor javascript is dit soort ranzigheid meestal niet zo heel erg (op XSS vulnerabilities na) maar als je dat soort trucs in serverside code gaat uithalen dan vraag je om problemen.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Verwijderd

Als de variabelen globaal zijn kan je altijd nog dit doen:
code:
1
alert(window['word_' + i])


Maar omdat je dit vraagt vermoed ik dat je een beginnende programmeur bent en überhaubt niet zo'n goede reden hebt om het zo te doen. Probeer dit eens:

code:
1
2
3
4
5
var word = ['aap', 'noot']

function showWord(i){
  alert(word[i])
}
Pagina: 1