Alexander: Variable zu Namen eines Array

Hallo!

Puh, ich suche inen Befehl in JS, mit dem ich einen Text und den Inhalt
einer Variabeln zu zusammenfüge, das beide zusammen den namen eines
Arrays ergeben:

var artikel1=new Array ();
artikel1["nr"]="[$NR]";
artikel1["titel"]="[$TITEL]";

var objekt="artikel"+count;

// objekt soll der Name des Arrays sein (artikel1)

document.write(artikel1["titel"]);

das funktioniert aber irgendwie nicht, der nimmt die variable objekt
nicht als namen des arrays.

hoffentlich kann mir jmd. helfen.

alex

  1. Hi!

    var objekt="artikel"+count;

    // objekt soll der Name des Arrays sein (artikel1)

    document.write(artikel1["titel"]);

    das funktioniert aber irgendwie nicht, der nimmt die variable objekt
    nicht als namen des arrays.

    JavaScript kann Strings auch nicht als Variablennamen verstehen. Das kannst Du aber mit einem zweidimensionalen Array loesen:

    var artikel = new Array();
    var artikel[1] = new Array();
    artikel1["nr"]="[$NR]";
    artikel1["titel"]="[$TITEL]";
    ...
    var objekt=artikel[count];
    document.write(artikel[1]["titel"]);

    MfG Simon

    1. hallo,
      ich habs so gemacht:

      var artikel = new Array ();
      var artikel[2] = new Array ();
      artikel[2]["nr"]="2073";
      var count="2";
      document.write(artikel[count]["nr"]);

      funzt aber nicht.

      alex

      Hi!

      var objekt="artikel"+count;

      // objekt soll der Name des Arrays sein (artikel1)

      document.write(artikel1["titel"]);

      das funktioniert aber irgendwie nicht, der nimmt die variable objekt
      nicht als namen des arrays.

      JavaScript kann Strings auch nicht als Variablennamen verstehen. Das kannst Du aber mit einem zweidimensionalen Array loesen:

      var artikel = new Array();
      var artikel[1] = new Array();
      artikel1["nr"]="[$NR]";
      artikel1["titel"]="[$TITEL]";
      ...
      var objekt=artikel[count];
      document.write(artikel[1]["titel"]);

      MfG Simon

      1. hi,

        var artikel = new Array ();
        var artikel[2] = new Array ();
        artikel[2]["nr"]="2073";
        var count="2";
        document.write(artikel[count]["nr"]);

        funzt aber nicht.

        doch, so:

        var artikel = new Array();
        artikel[2] = new Array();
        artikel[2]["nr"]='2073';
        var count='2';
        document.write(artikel[count]["nr"]);

        das zweite 'var' ist falsch, ist ja derselbe Array, der bereits mit 'var' definiert wurde!

        Gruss  Joachim

        1. Hi,

          var count='2';

          Wenn man es _ganz_ genau nimmt, muß es

          var count = 2;

          heißen *g*
          Irgendwie stört mich diese autmatische Typenzuweisung ,) Da wünscht
          man sich doch glatt das gute alte Pascal zurück, wo noch genau
          unterschieden wurde *gg*

          mfg
          CK1

          1. Hi!

            Irgendwie stört mich diese autmatische Typenzuweisung ,) Da wünscht
            man sich doch glatt das gute alte Pascal zurück, wo noch genau
            unterschieden wurde *gg*

            Uuahh, Hilfe!
            Bin ich froh, auf Java umgestiegen zu sein, da kann man die Variablen wenigstens notieren, wo man will und muss nicht fuer jedes Array einen neuen Typ deklarieren. *g*

            MfG Simon

  2. hi,

    das funktioniert aber irgendwie nicht, der nimmt die variable objekt
    nicht als namen des arrays.

    leider kapiere ich nicht ganz, was Du machen willst, aber vermutlich versuchst Du Strings und
    Variablen zu mischen.

    Als Bsp:

    var objekt = "objekt";
    var count = 1;
    var objekt1 = new Array(1,2,3,4,5,6);

    document.write(objekt+count); // schreibt Dir 'objekt1' ins dokument
    document.write(objekt + count[3]); // erzeugt eine Fehlermeldungen
    document.write(eval(objekt + count)[3]); // ergibt (richtig) 4.

    eval koennte Dir hier also weiterhelfen, wenns auch bei manchen Leuten als nicht ganz sauberer Stil gilt.

    Du kannst aber Arrays auch verschachteln, also so etwa:' objekt[1]["titel"] = "...";' , vielleicht hilft Dir auch
    sowas weiter.

    hth

    Gruesse  Joachim