Kai345: Auf unbekannte Objekteigenschaft zugreifen

[latex]Mae  govannen![/latex]

Ich habe ein Objekt, z.B. dieses hier:

var ob = {  
  eigen: "wert"  
}

Dieses Objekt hat immer _genau ein_ Eigenschaft-Wert-Paar, allerdings mit mir vorher nicht bekannten Namen und Wert.

Es könnte also auch theoretisch sein, daß das Objekt

var ob = {  
  baggins: "bilbo"  
}

wäre.

Ich möchte nun einer Variablen „a“ den Namen der Eigenschaft (hier: „eigen“ bzw. „baggins“) zuweisen.

Zur Zeit löse ich dies mit einer leeren for..in-Schleife

for (var a in ob) {};

und somit enthält a den gewünschte Eigenschaftnamen.

Allerdings finde ich diese Methode unelegant und unintuitiv (man wäre ohne Kommentar geneigt, die Zeile zu löschen, da sie auf den ersten Blick sinnlos zu sein scheint), daher meine Frage: Kann ich einen unbekannten Eigenschaftsnamen noch auf andere Weise einer Variablen zuweisen?

Cü,

Kai

--
When the limos return for their final review, it's all thru'
- all they can see is the morning goo.
"There's no-one left alive - must be draw."
So the Blackcap Barons toss a coin to settle the score.
ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
  1. Allerdings finde ich diese Methode unelegant und unintuitiv (man wäre ohne Kommentar geneigt, die Zeile zu löschen, da sie auf den ersten Blick sinnlos zu sein scheint), daher meine Frage: Kann ich einen unbekannten Eigenschaftsnamen noch auf andere Weise einer Variablen zuweisen?

    Nein. Ich weiß nicht warum du das so machst, aber du hast recht es ist unelegant und unintuitiv.

    Struppi.

  2. Hi,

    Kann ich einen unbekannten Eigenschaftsnamen noch auf andere Weise einer Variablen zuweisen?

    ja, indem Du ihn in einem bekannten Eigenschaftsnamen speicherst. Ich halte Dein Datenmodell für überarbeitungswürdig.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. [latex]Mae  govannen![/latex]

      Kann ich einen unbekannten Eigenschaftsnamen noch auf andere Weise einer Variablen zuweisen?

      ja, indem Du ihn in einem bekannten Eigenschaftsnamen speicherst. Ich halte Dein Datenmodell für überarbeitungswürdig.

      *seufz* Das ist wahr.

      Es war halt sehr spät bzw. früh ...

      dann mache ich eben aus

      var ob = {  
        foo: bar  
      }
      
      var ob = {  
        wert1: foo,  
        wert2: bar  
      }
      

      Cü,

      Kai

      --
      When the limos return for their final review, it's all thru'
      - all they can see is the morning goo.
      "There's no-one left alive - must be draw."
      So the Blackcap Barons toss a coin to settle the score.
      ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
      1. Hi,

        var ob = {

        wert1: foo,
          wert2: bar
        }

          
        für "wert1" bietet sich "name" an, für "wert2" "value".  
          
        Cheatah  
        
        -- 
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|  
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html  
        X-Will-Answer-Email: No  
        X-Please-Search-Archive-First: Absolutely Yes
        
  3. Hi,

    var a = "eigen";
    var ob[a] = "wert";

    alert(ob.eigen); // => "wert"

    Aber Cheatah hat natürlich auch recht.

    Gruß!

    1. Mahlzeit,

      var a = "eigen";
      var ob[a] = "wert";

      Wenn ich Kai345 richtig verstanden habe, weiß er genau das nicht.

      alert(ob.eigen); // => "wert"

      Wie kann er also auf eine Eigenschaft zugreifen, deren Namen er nicht kennt?

      Aber Cheatah hat natürlich auch recht.

      Grundsätzlich schon - aber manchmal muss man eben mit Daten bzw. vorhandenen Strukturen selbiger einfach nur arbeiten und hat keinen Einfluss auf sie.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|