javascript: objekte in for-schleife durchlaufen

  • hallo,
    irgendwie hänge ich da grad, vielleicht kann oder besser möchte mir ja jemand weiter helfen:

    ich habe einige objekte erstellt:

    Code
    var obj1 = new object(param1, param2, ... parami);
    var obj2 = new object(param1, param2, ... parami);
    ....
    var obji = new object(param1, param2, ... parami);

    nun möchte ich an anderer stelle in einer for-schleife alle objekte durchlaufen, und eine eigenschaft abfragen. allerdings, weiß ich nicht wie ich das anstellen soll. gebe ich mein objekt direkt an (obj1.eigenschaft), dann funktioniert es, wenn ich aber obj+die zahl der for-schleife nehme, geht es nicht. habe schon verschiedene sachen durchprobiert, komme aber nicht drauf, wie es gehen soll....

    Code
    for (i=1; i<x; i++) {
      erg = obj1.eigenschaft;     --> funktioniert!
      tmp = 'obj'+i;                  --> liefert laut ausgabe zwar den richten namen (also obj1 usw), aber
      erg2 = tmp.eigenschaft;    --> funktioniert nicht!
    }
  • Zitat von Woo Tanfall

    hallo,
    irgendwie hänge ich da grad, vielleicht kann oder besser möchte mir ja jemand weiter helfen:

    ich habe einige objekte erstellt:

    Code
    var obj1 = new object(param1, param2, ... parami);
    var obj2 = new object(param1, param2, ... parami);
    ....
    var obji = new object(param1, param2, ... parami);

    nun möchte ich an anderer stelle in einer for-schleife alle objekte durchlaufen, und eine eigenschaft abfragen. allerdings, weiß ich nicht wie ich das anstellen soll. gebe ich mein objekt direkt an (obj1.eigenschaft), dann funktioniert es, wenn ich aber obj+die zahl der for-schleife nehme, geht es nicht. habe schon verschiedene sachen durchprobiert, komme aber nicht drauf, wie es gehen soll....

    Code
    for (i=1; i<x; i++) {
      erg = obj1.eigenschaft;     --> funktioniert!
      tmp = 'obj'+i;                  --> liefert laut ausgabe zwar den richten namen (also obj1 usw), aber
      erg2 = tmp.eigenschaft;    --> funktioniert nicht!
    }

    was ist tmp für ein typ? schaut recht string-artig aus. dann ists aber kein wunder, dasses nicht geht, weil ein String keine variable eigenschaft hat.

  • Zitat von Woo Tanfall

    hallo,
    irgendwie hänge ich da grad, vielleicht kann oder besser möchte mir ja jemand weiter helfen:

    ich habe einige objekte erstellt:

    Code
    var obj1 = new object(param1, param2, ... parami);
    var obj2 = new object(param1, param2, ... parami);
    ....
    var obji = new object(param1, param2, ... parami);

    nun möchte ich an anderer stelle in einer for-schleife alle objekte durchlaufen, und eine eigenschaft abfragen. allerdings, weiß ich nicht wie ich das anstellen soll. gebe ich mein objekt direkt an (obj1.eigenschaft), dann funktioniert es, wenn ich aber obj+die zahl der for-schleife nehme, geht es nicht. habe schon verschiedene sachen durchprobiert, komme aber nicht drauf, wie es gehen soll....

    Code
    for (i=1; i<x; i++) {
      erg = obj1.eigenschaft;     --> funktioniert!
      tmp = 'obj'+i;                  --> liefert laut ausgabe zwar den richten namen (also obj1 usw), aber
      erg2 = tmp.eigenschaft;    --> funktioniert nicht!
    }

    du musst eval() verwenden, weil tmp ist sonst einfach vom typ string.

    also ca. so:

    Code
    erg2 = eval("obj" + i + ".eigenschaft;");
  • Hm, ich würd die Objekte in einen Vector reinlegen, sonst benennst mal eines um, und wunderst dich, dass nix mehr geht.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Ich mach sowas immer mit ArrayList ähnlich wie Vector mit zusätzlichen funktionen z.b removeAll() usw. und mit den Generics bei der List kannst du dir dann ja auch viel arbeit sparen

    Man sieht nur mit dem Herzen gut, das wesentliche bleibt dem Auge verborgen.

  • hallo,
    irgendwie hänge ich da grad, vielleicht kann oder besser möchte mir ja jemand weiter helfen:

    ich habe einige objekte erstellt:

    Code
    var obj1 = new object(param1, param2, ... parami);
    var obj2 = new object(param1, param2, ... parami);
    ....
    var obji = new object(param1, param2, ... parami);


    nun möchte ich an anderer stelle in einer for-schleife alle objekte durchlaufen, und eine eigenschaft abfragen. allerdings, weiß ich nicht wie ich das anstellen soll. gebe ich mein objekt direkt an (obj1.eigenschaft), dann funktioniert es, wenn ich aber obj+die zahl der for-schleife nehme, geht es nicht. habe schon verschiedene sachen durchprobiert, komme aber nicht drauf, wie es gehen soll....

    Code
    for (i=1; i<x; i++) {
      erg = obj1.eigenschaft;     --> funktioniert!
      tmp = 'obj'+i;                  --> liefert laut ausgabe zwar den richten namen (also obj1 usw), aber
      erg2 = tmp.eigenschaft;    --> funktioniert nicht!
    }

    also ich würde es so machen


    und dann

    Ich hoffe dieses kleine Beispiel ist hilfreich

    Man sieht nur mit dem Herzen gut, das wesentliche bleibt dem Auge verborgen.

  • Nice, aber

    JAVA-SCRIPT

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!