1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

javascript: objekte in for-schleife durchlaufen

    • Frage
  • Woo Tanfall
  • 1. August 2006 um 22:47
  • Unerledigt
  • Woo Tanfall
    4
    Woo Tanfall
    Mitglied
    Reaktionen
    2
    Punkte
    137
    Beiträge
    20
    • 1. August 2006 um 22:47
    • #1

    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!
    }
  • Green Mamba
    8
    Green Mamba
    Mitglied
    Reaktionen
    1
    Punkte
    591
    Beiträge
    116
    • 1. August 2006 um 23:02
    • #2
    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.

  • MaxAuthority
    17
    MaxAuthority
    Gewinner des Desktop-Contest 2002
    Reaktionen
    5
    Punkte
    3.165
    Beiträge
    626
    • 1. August 2006 um 23:03
    • #3
    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;");

    http://vimperator.org - Make Firefox behave like Vim

  • Wolfibolfi
    37
    Wolfibolfi
    Mitglied
    Reaktionen
    186
    Punkte
    14.936
    Beiträge
    2.942
    • 1. August 2006 um 23:17
    • #4

    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.

  • Woo Tanfall
    4
    Woo Tanfall
    Mitglied
    Reaktionen
    2
    Punkte
    137
    Beiträge
    20
    • 1. August 2006 um 23:28
    • #5

    :hewa: ich bin ja sowas von blöd heute.... thx!

    das mit dem vektor / array hab ich in der zwischenzeit eh gemacht, werds aber test- und interessenshalber mal mit eval probieren.

    lg

  • Kash
    11
    Kash
    Mitglied
    Reaktionen
    5
    Punkte
    1.245
    Beiträge
    241
    • 24. August 2006 um 10:57
    • #6

    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.

  • Kash
    11
    Kash
    Mitglied
    Reaktionen
    5
    Punkte
    1.245
    Beiträge
    241
    • 24. August 2006 um 11:48
    • #7
    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!
    }

    also ich würde es so machen

    Code
    public class Obj {
    
    
        
        private String param1;
        private String param2;
        private String param3;
        private String param4;
    
    
        //Setter
        public void setParam1(String param1){
            this.param1 = param1;
        }
        public void setParam2(String param2){
            this.param2 = param2;
        }
        public void setParam3(String param3){
            this.param3 = param3;
        }
        public void setParam4(String param4){
            this.param4 = param4;
        }
        //getter
        public String getParam1(){
            return this.param1;
        }
        public String getParam2(){
            return this.param2;
        }
        public String getParam3(){
            return this.param3;
        }
        public String getParam4(){
            return this.param4;
        }
    }
    Alles anzeigen


    und dann

    Java
    import java.util.*;
    
    
    public class Test {
    
        private List<Obj> objectList = new ArrayList<Obj>();
    
        public Test(){        
            addObj();
            printObj();
        }
        private void addObj(){
    
            for(int i = 0; i<100;i++){
                Obj obj = new Obj();
                obj.setParam1("Param1"+i);
                obj.setParam2("Param2"+i);
                obj.setParam3("Param3"+i);
                obj.setParam4("Param4"+i);
                objectList.add(obj);
            }    
        }
        private void printObj(){
            for(int i = 0; i<100;i++){
    
                System.out.println("Object Nr.: "+i);
                System.out.println(objectList.get(i).getParam1());
                System.out.println(objectList.get(i).getParam2());
                System.out.println(objectList.get(i).getParam3());
                System.out.println(objectList.get(i).getParam4());
    
            }
        }
    }
    Alles anzeigen

    Ich hoffe dieses kleine Beispiel ist hilfreich

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

  • AntiBit
    13
    AntiBit
    Mitglied
    Reaktionen
    2
    Punkte
    1.712
    Beiträge
    297
    • 24. August 2006 um 12:19
    • #8

    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.

  • Kash
    11
    Kash
    Mitglied
    Reaktionen
    5
    Punkte
    1.245
    Beiträge
    241
    • 24. August 2006 um 13:00
    • #9

    ja und ich glaub etwas zu spät war ich auch

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

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung