Frankie: Anfängerfrage Variablen ändern

Hallo, ich komme leider nicht weiter. Kann mir jemand helfen?

<script type="text/javascript">

var $a_1 = "Dies soll ";
var $a_2 = "mal einen schönen ";
var $a_3 = "Satz ergeben";

for (var $i = 0; $i < 4; $i++) {
document.write("$a_" + $i);
}
</script>

Wenn ich das ausführe, bekomme ich (wahrscheinlich folgerichtig) die WERTE "$a_1$a_2$a_3" ausgegeben.

Aber wie bringe ich dem Compi bei, dass er nicht das, sondern den Inhalt der gleichnamigen Variablen ausgeben soll?

Kann mir jemand helfen? Ich versuche mich da schon Stunden dran :o( Danke

  1. 1. variablen kennzeichnet man in JS nicht mit einem $ ;)
    2. Dafür gibt's Arrays:

    var a = new Array;
    a[0] = "Dies soll ";
    a[1] = "mal einen schönen ";
    a[2] = "Satz ergeben";

    for (var i=0; i<4; i++) {
       document.write(a[i]);
    }

    mehr dazu findest du auch auf selfhtml.org =P
    Gruß, Bumbi

    1. Hi Bumbi, SUPIEEE
      Ich hatte $a[1] etc. versucht und andauernd Fehler gekriegt
      Mit 'nem Array sieht das dann wohl besser aus :o)
      Ich hasse Javascript ...

      1. Ich hatte $a[1] etc. versucht und andauernd Fehler gekriegt

        Dann musst du die beseitigen.

        Ich hasse Javascript ...

        Wegen den Arrays?

        Struppi.

        --
        Javascript ist toll (Perl auch!)
    2. var a = new Array;
      a[0] = "Dies soll ";
      a[1] = "mal einen schönen ";
      a[2] = "Satz ergeben";

      for (var i=0; i<4; i++) {
         document.write(a[i]);
      }

      Das ist insofern fehlerhaft, als dass der letzte Eintrag des Feldes die Nummer 2 hat, die Schleife aber bis i<4, also 3 durchläuft. Besser:

      for (var i = 0; i < a.length; i++) {

      Auch wenn der Einsatz eines Feldes hier sicherlich die angemessenste Lösung ist, gibt es davon unabhängig auch in Javascript die Möglichkeit, Variablennamen zusammenzubasteln:

      var a_1 = "Dies soll ";
      var a_2 = "mal einen schönen ";
      var a_3 = "Satz ergeben";

      for (var i = 1; i <= 3; i++) {
          document.write(window["a_" + i]);
      }

      Aber wie gesagt: Das ist im vorliegenden Fall alles andere als elegant, von einer Verwendung rate ich ausdrücklich ab.

      1. for (var i = 1; i <= 3; i++) {
            document.write(window["a_" + i]);
        }

        Aber wie gesagt: Das ist im vorliegenden Fall alles andere als elegant, von einer Verwendung rate ich ausdrücklich ab.

        zumal das so auch nur mit globalen Variabeln funktioniert

        Struppi.

        --
        Javascript ist toll (Perl auch!)
      2. for (var i = 0; i < a.length; i++) {

        Danke Bla, der ist gut, um z.B. individuelle Schleifen zu beenden,
        bei denen man den Anzahl der Variablen nicht weiss.

        Wieder was dazugelernt :o)

  2. Hallo, ich komme leider nicht weiter. Kann mir jemand helfen?

    <script type="text/javascript">

    var $a_1 = "Dies soll ";
    var $a_2 = "mal einen schönen ";
    var $a_3 = "Satz ergeben";

    Was sollen die Dollarzeichen?
    Du suchst Arrays

    Struppi.

    --
    Javascript ist toll (Perl auch!)