1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • 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
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Woo Tanfall
    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
    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
    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;");
  • Wolfibolfi
    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.

  • Woo Tanfall
    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
    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

  • Kash
    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

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

    Nice, aber

    JAVA-SCRIPT

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

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

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum