advanced assoziatives array ;)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • advanced assoziatives array ;)

    moin zusammen,
    ich brauch ein einigermaßen großes werte-array in js.
    in php würde ich folgendes schreiben um das abzubilden, was ich will:

    PHP-Code:
    $array_tarif["A"]["B"] = array
        (
    "versiona"=>0.37"versionb"=>0.45"versionb"=>0.56); 
    das ist so in js scheinbar nicht möglich, oder? siehts so aus, dass ich es nur so lösen könnte:

    $array_tarif["A"]["B"]["versiona"]=0.37;
    $array_tarif["A"]["B"]["versionb"]=0.45;
    $array_tarif["A"]["B"]["versionc"]=0.56;

    ???

    danke und gruß

    **********
    arkos
    **********

  • #2
    in javascript sind arrays objekte, also mußt du bei jeder zusätzlichen ebene ein entsprechendes erzeugen, etwa so:
    PHP-Code:
    var array_tarif = new Array();
    array_tarif['A'] = new Array();
    array_tarif['A']['B'] = new Array();
    array_tarif['A']['B']['versiona'] = new Array();
    ...
    usw 
    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      danke peter,
      soweit hatte ich es auch schon verstanden. im umkehrschluss heißt es jedoch dann wohl wirklich, dass ich diese nicht so (optisch) komfortabel wie in php erstellen kann.... nech!?

      allerdings habe ich die weiteren ebenen des arrays als new object() deklariert.... ist das falsch?

      bsp:
      PHP-Code:
      var array_tarif = new Array();
      array_tarif['A'] = new Object();
      array_tarif['A']['B'] = new Object();
      array_tarif['A']['B']['C'] = new Array("wert1","wert2"); 
      **********
      arkos
      **********

      Kommentar


      • #4
        Re: advanced assoziatives array

        Es gibt in Javascript bekanntlich keine assoziativen Arrays - höchstens Objekte mit Eigenschaften.

        Damit könnte das
        PHP-Code:
        $array_tarif["A"]["B"] = array
            (
        "versiona"=>0.37"versionb"=>0.45"versionb"=>0.56); 
        bspw. in Javascript abgebildet in etwa so aussehen:
        Code:
        var array_tarif = {
           "a" : {
              "b" : {
                 "versiona" : .37,
                 "versionb" : .45,
                 "versionc" : .56
              }
           }
        };
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          dass ich diese nicht so (optisch) komfortabel wie in php erstellen kann
          stimmt, ich habe da auch schon geflucht wie ein kesselflicker
          PHP-Code:
          array_tarif['A'] = new Object(); 
          falsch, ist zwar ein objekt, aber ein array-objekt
          PHP-Code:
          array_tarif['A'] = new Array(); 
          ähnlich wie bei bildern
          PHP-Code:
          var blubb = new Image(); 
          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Original geschrieben von Kropff
            PHP-Code:
            array_tarif['A'] = new Object(); 
            falsch, ist zwar ein objekt, aber ein array-objekt
            PHP-Code:
            array_tarif['A'] = new Array(); 
            Das ist wiederum Quark - zumindest dann, wenn es so wie im Beispiel, dann nachher mit einer Eigenschaft ['B'] "erweitert" wird, also array_tarif['A']['B'] = xyz.

            Da wird nämlich nur eine Eigenschaft angehängt, das ist kein "Array-Index" (nochmal: assoziative Arrays gibt es in JS nicht).
            Klar, das "funzt" in dem Fall - weil auch ein Array in Objekt ist, und man ihm daher eigene Eigenschaften anhängen kann.

            Sinn ergibt es aber keinen. Wenn man nur ein reines Objekt nutzen möchte, dann kann (und sollte) man das Ding auch gleich als Object initialisieren.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Das ist wiederum Quark
              ich habe versucht es einfach zu erklären. bin eh nicht der super js-experte.

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Original geschrieben von Kropff
                ich habe versucht es einfach zu erklären.
                Es war aber einfach falsch :-)

                (Oder ich hätte dich falschherum verstanden ...)


                Fakt ist und bleibt jedenfalls: Es ist sinnlos, etwas als Array() zu deklarieren, wenn man es dann nur als Object benutzt, und auf seine Eigenschaften als Array gar keinen Wert legt.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  bspw. in Javascript abgebildet in etwa so aussehen:
                  Sinnvoller wäre es das Objekt so zu benutzen dann über JSON zu generieren. (ist eine Austauschmöglichkeit für AJAX)
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #10
                    Was wäre daran "sinnvoller"?
                    Sich zusätzlich noch den Overhead eines Frameworks aufhalsen ...?

                    Bei wirklich komplexeren Datenstrukturen mag das u.U. sinnvoll sein - für ein paar Daten, die mal eben so übergeben werden sollen, sehe ich darin aber weniger Sinn.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      OffTopic:
                      er wollt halt zeigen dass er weiß was ajax ist..
                      Die Milch bleibt ranzig!

                      Kommentar

                      Lädt...
                      X