Variable Daten durchsuchen

  • Hallo zusammen,


    leider bin ich was JS angeht eher blutiger Anfänger. Habe mir zwar schon einiges angeeignet, stoße aber gerade wieder an meine Grenzen.

    Ich habe eine sehr große Datenmenge welche ich variabel durchsuchen lassen, und die Ergebnisse anzeigen lassen möchte. Der Aufbau der Daten ist wie folgt:


    var Haus= {

    H101:{

    Firma:'Müller',

    Niederlassung:'Niederlassung Müller',

    Strasse:'Müllerstrasse 1',

    Ort:'D - 01099 Dresden',

    Oeffnungszeiten:'Mo.-Fr. 04:00 - 19:00 Uhr',

    D10122:{

    Abteilung:'Chef',

    Name:'Max Mustermann',

    erweitert:'',

    Telefon:'0815',

    TelDW:'10',

    Fax:'0815',

    FaxDW:'11',

    Mobil:'4711',

    Mail:'max.mustermann@Mueller.de ',

    },

    D10124:{

    Abteilung:'Sekretariat',

    Name:'Uli Mustermann',

    erweitert:'',

    Telefon:'0815',

    TelDW:'12',

    Fax:'0815',

    FaxDW:'13',

    Mobil:'4712',

    Mail:'uli.mustermann@Mueller.de',

    },

    D10126:{

    Abteilung:'Operativ',

    Name:'Bernd Mustermann',

    erweitert:'',

    Telefon:'0815',

    TelDW:'14',

    Fax:'0815',

    FaxDW:'15',

    Mobil:'',

    Mail:'bernd.mustermann@Mueller.de',

    },

    ...

    }


    Diese Daten lese ich ein mit: var key = Haus[Rel];

    Mein Plan war nun, die Attribute auslesen zu lassen, was auch bei direkter Anwahl funktioniert - sowohl mit key.Niederlassung komme ich auf das richtige Ergebnis, als auch mit key.D101124.Name.

    Mein Problem ist, dass ich alle Angaben benötige die unter H101 gegeben sind, also D10122, D10124 etc., weshalb ich dachte ich könnte dies mit einer For Schleife (for (i=1;i<=100, i++) )realisieren, und die Variablen nach dem Prinzip gesuchteVariable = D101+i; / console.log(key.gesuchteVariable.Name); anzeigen lassen. Dabei bekomme ich aber immer die Fehlermeldung dass dies nicht definiert ist. Ich brauche also eine Möglichkeit, aus diesem String eine Variable zu erstellen.


    Vermutlich ist dies auch gar nicht so schwierig, da ich aber eher aus dem VBA Bereich komme stelle ich mich teilweise sehr schwer an die richtige Logik zu sehen. ;)


    Vielen Dank für eure Hilfe, sollte ich mich gar zu unverständlich ausgedrückt haben, bitte noch einmal nachfragen was ich mit dem Kauderwelsch meine, vielen Dank...

  • So wie es da steht ist das auch kein gültiges JSON, wundert mich, dass es überhaupt was findet...

    War ein Versuch ob es so funktioinert, da bei plumpen Ansprechen ja etwas findet dachte ich ist ok so und muss dann ja auch variabel gehen.

  • Wenn Du den Schlüssel aus einer Variablen zusammenbauen willst, ist die Syntax etwas anders:

    Haus['D101' + i]

    Der Teil Haus[Rel] ist ja nur da um alle Daten zu laden, und das funktioniert ja prinzipiell auch. Mein Problem ist ja in diesen Daten wiederrum einzelne anzusprechen mit variablen Namen. Hatte ich aber auch schon so versucht, leider auch ohne Erfolg.


    Das wäre dann ja der Teil den ich lapsig aufgeschrieben habe (gesuchteVariable = D101+i). Korrekt hatte ich es so versucht wie du geschrieben hattest oder var gesuchteVariable('D101'+i); usw. Also ich habe alle Varianten getestet die ich gefunden habe, leider alle ohne Erfolg.


    So wie ich das sehe brauche ich "nur" eine Möglichkeit aus dem String ('D101'+i) einen Wert zu erstellen den js suchen kann. Wie gesagt, gebe ich es fest als Wert ein (D10122 z.B.) findet js ja das richtige Ergebnis.

  • Hatte nicht genau hingesehen: D101* ist ja ein Kind von H101, d. h. letzteres muss man in die Adressierung einbeziehen:

    Code
            for (var i = 0; i < 100; i++) {
                var item = Haus.H101['D101' + i];
                if (item) console.log(item.Name);
            }
  • Super, danke Sempervivum.

    Das mit den 'Kindern' habe ich noch nicht so richtig verinnerlicht, aber genau das war der Fehler.


    Funktioniert jetzt wie gewünscht, besten Dank.:)

Jetzt mitmachen!

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