2012-04-05 12 views
0

Mögliche Duplizieren:
Pick random property from a Javascript objectWie kann ich einen Eigenschaftsnamen in einem JavaScript-Objekt erhalten?

nehme an, ich habe ein Javascript-Objekt:

Config.UI.Area = { 
     "uuid": { 
      "_type": "string" 
     }, 
     "frame": { 
      "_type": "rect" 
     }, 
     "zIndex": { 
      "_type": "string" 
     } 
} 

dann will ich jeden von der Unterkunft Namen bekommen, wie "uuid",“ frame "," zIndex " mit for for loop:

var prop=config.ui.area; 
var arr=new Array() 
for(var i in prop){ 
    //do something with prop[i]? 
    //arr.push(prop[i].....)? 
} 

Ich kann nicht direkt prop [i] verwenden, es würde mir ein Objekt zurückgeben, wie kann ich nur seinen Namen bekommen?

+0

dup: http://stackoverflow.com/questions/3068534/getting-javascript-object-key-list – Alexander

Antwort

4

Sie Dies würde eine Reihe von Eigentum geben Namen:

for(var name in prop){ 
    //do something with prop[name]? 
    arr.push(name); 
} 

Es würde Ihnen auch die Namen geben von ‚native‘ Eigenschaften des Object-Objekt. Um zu vermeiden, dass, verwenden Sie die hasOwnProperty Methode:

for(var name in prop){ 
    if (prop.hasOwnPropery(name) { 
    arr.push(name); 
    } 
} 
1

Im Folgenden finden Sie, wie Sie Eigentum durchlaufen und erhalten Wert entspricht

var prop=config.ui.area; 
var arr=new Array() 
for(var i in prop){ 
    //do something with prop[i]? 
    var propertyName = i; 
    var propertyValue = prop[i]; 
} 
0

prop (und Config.UI.Area) ist ein Objekt (nicht eine Reihe von Objekt). Sie können also nicht Prop [i] tun.

die Sie interessieren,

var obj = { 
      "uuid": { 
       "_type": "string" 
      }, 
      "frame": { 
       "_type": "rect" 
      }, 
      "zIndex": { 
       "_type": "string" 
      } 
    } 

    var prop = obj; 
    var arr=[]; 
    for(var i in prop){ 
     if(i.hasOwnProperty){ 
     arr.push(i); 
     } 
    } 
    console.log(arr); 
0

auf den Namen eines Objekts Eigenschaft in einer Schleife benutzen Sie:

for(var propertyName in myObject) { 
    if(myObject.hasOwnProperty(propertyName) { 
    console.log(propertyName); // will be uuid, frame or zIndex 
    } 
} 

zu Eigenschaften der Unter Objekte zu erhalten, verwenden

for(var propertyName in myObject) { 
    if(myObject.hasOwnProperty(propertyName) { 
    var subObject = myObject[propertyName]; 
    console.log(subObject._type); 
      // will string or rect based on your sample code 
    } 
} 

Die Verwendung der hasOwnProperty in einer Schleife durch ein Objekt ist eine gute Idee, da es Eigenschaften des Objekts ausfiltert ect, die über seine prototype vererbt werden.

Verwandte Themen