variable wird zu array
der unprofi
- javascript
0 H2O0 fastix®0 Christoph Zurnieden0 Struppi
klitze kleine frage vom unprofi:
var map_1 = new Array('55','5','blabla');
...
...
...
for(var x=1;x<50;x++)
{
var current_map_array = "map_" + x;
var c_value = current_map_array[x]
alert(c_value);
}
im klartext.
ich drück auf eine map die ruft die funktion xyz(1) auf.
aus der 1 soll nun aus dem array map_1 die werte ausgelesen werden.
aber wie mach ich das current_map_array zum array????
danke für eure hilfe/tipps.
Gruß
alex
Hallo der.
Wenn ich das richtig sehe, kommst du um eval() nicht herum...
So müsst es gehen:
for(var x=1;x<50;x++)
{
eval("var current_map_array = "map_""+x+";");
var c_value = current_map_array[x]
alert(c_value);
}
Man liest sich, H2O
Moin!
aber wie mach ich das current_map_array zum array????
Warum geht es nicht mit var current_map_array=new Array()?
Aus dem Rest Deines Skriptes und Deines "Klartextes" bin ich nicht schlau geworden.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
klitze kleine frage vom unprofi:
Aber eine gute, da bin ich auch schonmal mit reingefallen.
Aber dafür weiß ich es jetzt ;-)
var map_1 = new Array('55','5','blabla');
Dies ist eine globale Variable, ja? D.h.: sie steht in keiner Funktion sondern "nackicht" da?
Alle Variablen solcher Art sind auch nur Objekte und zwar von window. (es gehen mitunter auch lokale Variabeln, aber da wird's sehr viel komplizierter)
Das window-Objekt ist auch nur ein Array und die globale Variable map_1 kann also auch mittels window["map_1"] angesprochen werden.
Ähm ... nich' klar? Erzähl ich schon wieder völlig unverständlich? Na gut, dann Beispiel ;-)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>[Titel Ihres Artikels]</title>
<script type="text/javascript">
var variable_1 = "eins";
var variable_2 = "zwei";
var variable_3 = "drei";
var bla = window["variable_3"];
alert(bla);
</script>
</head>
</html>
Hier ist noch ein Link:http://dcljs.de/faq/antwort.php?Antwort=forms_elementnamen
Ist uzwar ein etwas anderes Problem aber mit dem gleichem Lösungsprinzip. (Und auch etwas besser erklärt ;-)
Dementsprechend kannst Du jetzt Dein Schleifchen neu binden und es sollte klappen. Wenn nicht: einfach nochmal fragen.
so short
Christoph Zurnieden
und die einfachste und sinnvollste Lösung, wäre wenn
var map_1 = new Array('55','5','blabla');
du hier ein array verwendest.
var map = new Array();
map[1] = new Array('55','5','blabla');
Dann hättest du die Sorge los
for(var x=1;x<50;x++)
{
var current_map_array = "map_" + x;
var c_value = current_map_array[x]
alert(c_value);
}
for( var x = 1; x < map.length; x++)
{
var current_map_array = map[x];
var c_value = current_map_array[x]
alert(c_value);
}
Struppi.