@ndre@s: Variablennamen dynamisch aus div. Strings erzeugen

Hallo allerseits,

kennt jemand eine Lösung, wie man aus verschiedenen Strings einen Variablennamen erzeugen kann, auf den man auch zugreifen kann (sozusagen indirekte Adressierung).

Bsp. variablenname == buch1kapitel3seite5zeile23

feste strings: buch,kapitel,seite,zeile
variable srings: alle zahlen
wobei die letzte zahl wegfallen könnte, denn variablenname == buch1kapitel3seite5zeile[23] würde auch gehen.

Oder bleibt mir da nur die konstruktion eines mehrdimensionalen Arrays übrig ???
Also buch[1]kapitel[3]seite[5]zeile[23], falls dass überhaupt funktioniert? Ich weiss nämlich nicht, wie tief man Array staffeln kann.

Vielen Dank für 'nen richtungsweisenden Tip (oder mehr ;-).

Andreas

  1. Hallo Andreas!

    Du musst einfach die Strings miteinander addieren.

    Gruß, Jan

    1. Hallo Jan,

      Hallo Andreas!

      Du musst einfach die Strings miteinander addieren.

      Gruß, Jan

      Das kann nicht funktionieren.
      Bsp.:

      document.write("<TITLE >"+kapitel+1+seite[aktseite]+" </TITLE>")

      dann wird nämlich folgendes erzeugt

      <TITLE> kapitel1seite[aktseite]</TITLE>

      statt

      <TITLE> Seite24 </TITLE>

      weil nämlich in der Variablen kapitel1seite[24]= "Seite 24" drinnsteht.

      Gruß

      Andreas

  2. Hallo Andreas,

    kennt jemand eine Lösung, wie man aus verschiedenen Strings einen Variablennamen erzeugen kann, auf den man auch zugreifen kann (sozusagen indirekte Adressierung).

    teste mal das :-)
    <script>
    kapitel1=8;

    a="kap";
    b="itel";

    alert(self[a+b+1])
    </script>

    Viele Grüße

    Antje

    1. Hallo Antje,

      teste mal das :-)
      <script>
      kapitel1=8;

      a="kap";
      b="itel";

      alert(self[a+b+1])

      das funktioniert, nur wie bekomme ich [aktseite] da mit rein ???

      aktseite=1;
      a="kap";
      b="2";
      c="seite[aktseite]";
      alert(self[a+b+c])

      funktioniert nicht :-(
      Fehlermeldung "undefiniert" obwohl in was drinsteht

      Gruß
      Andreas

      1. Hallo Andreas!

        Mir ist zwar jetzt nicht so 100% klar, ob Du es so meinst, aber ich Poste es einfach trotzdem mal. Vielleicht stimmst ja doch.

        <script language="JavaScript">

        // Deine Variable mit den Inhalt.
          var kapitel1Seite = new Array("Hallo 0", "Hallo 1", "Hallo 2");
          
          // Stringvariablen.
          aktseite="1";
          a="kapitel";
          b="1";
          c="Seite";
          
          // Bestimmung des Variablennamens und anzeige des Inhalts.
          i=(a+b+c);
          alert(eval(i)[aktseite]);
          
        </script>

        Schöne Grüße,
          Sönke.

        1. n'Abend Sönke,

          BINGO !!!

          Das war es.

          ich wußte einfach nicht, wie ich den String zu einem Variablkennamen umwandeln kann. Dein Tip war es. Prima.

          Vielen Dank und schönen Abend noch

          Andreas

          1. Hi Andreas,

            ein Blick in <../../sfausles/tsfa_tca.htm#a2> lohnt sich zusätzlich.

            Grüße,
            Martin