Günter Marchewka: Aufbau, Struktur eines Array ermitteln

Hallo ihr da drinnen,
kann mir jemand einen Tipp geben, wie ich die Eigenschaften und Attribute eines Array auslesen kann?
Nach einer Suche im Archiv habe ich auf dieser Seite : http://developer.netscape.com/docs/manuals/js/client/jsguide/obj.htm#1008312 dazu einen Hinweis gefunden, wie es unter NS funktioniert. Unter dem IE klappt es nicht.
Beispiel:
var Aufg = new Array();  
function Aufgabe (Name, Text, Beginn)
{ this.Name = Name;
  this.Text = Text;
  this.Beginn = Beginn;
}

Aufg[Aufg.length]          = new Aufgabe();
Aufg[Aufg.length-1].Name   = 'Array Aufbau ermitteln';
Aufg[Aufg.length-1].Text   = 'Anhand eines Arraynamens soll dessen Aufbau und Struktur dynamisch erkannt werden.';
Aufg[Aufg.length-1].Beginn = '07.08.2000';

Damit ist der Array definiert und hat auch einen Eintrag.
Mit folgendem Code (Stammt aus dem Link oben) soll es nun möglich sein, die Struktur zu erfahren:
-- Codeschnipsel --
function show_props(obj, obj_name)
{   var result = "";
     for (var i in obj)
         {
           result += obj_name + "." + i + " = " + obj[i] + "\n";
         }
     return result;
}
alert(show_props(Aufg,"Aufg"));
-- Codeschnipsel --
Unter dem IE wird die Schleife sauber durchlaufen, für obj.[i] erscheint als Wert jedoch immer "object Object" und obj_name wird wie erwartet einfach nur entsprechend der Angabe ausgegeben, ohne das dahinter die Bezeichnung steht.
Bei http://msdn/microsoft.com/workshop/author/ bin ich nicht fündig geworden.
Abfragen über Eigenschaften mittels "item", "elements", "children" hatten alle keinen Erfolg.

Vielen Dank
Günter

  1. Hi!

    Unter dem IE wird die Schleife sauber durchlaufen, für obj.[i] erscheint als Wert jedoch immer "object Object" und obj_name wird wie erwartet einfach nur entsprechend der Angabe ausgegeben, ohne das dahinter die Bezeichnung steht.

    Welche Bezeichnung denn? Aufg ist ein Array, in diesem Fall mit genau einem Element. Jedes der Elemente ist wiederum ein Objekt (auch als assoziatives Array bezeichnet). Wenn man das mit alert() anzeigt, kommt nun mal "[object Object]" dabei heraus (es sei denn, Du definierst fuer das Objekt eine toString()-Methode, die einen anderen Text erzeugt). Das macht auch Netscape nicht anders, es ist voellig korrekt.

    Wenn Du jedes der Elemente in Aufg separat ausgeben willst, ginge das mit

    for (var j in Aufg)
        alert(show_props(Aufg[j], "Aufg[" + j + "]"));

    HTH && So long

    1. Hi Calocybe!
      Danke!
      Gruß Günter