2016-04-06 15 views
0

hier zu handeln ist mein Ziel:Node.js: Variable als verschachtelten Elementnamen für ein Objekt

obj = { 
     "FirstName": "Fawad", 
     "LastName": "Surosh", 
     "Education": {"University": "ABC", "Year": "2012"} 
    } 

Hier mein node.js Code ist:

var nodeName = 'Education.Year'; 
obj.nodeName; //this should return the value of Year which is '2012' 

Gibt es eine Möglichkeit für die Umsetzung diese Lösung? Dies liegt daran, dass mein Knotenname aus der db-Tabelle extrahiert wird und nicht spezifisch ist.

+2

Siehe [Zugriff auf verschachtelte JavaScript-Objekte mit String key] (http://stackoverflow.com/questions/6491463/accessing-nested-javascript- objects-with-string-key) sowie [Dynamisch auf Objekteigenschaften mit Variable zugreifen] (http://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable) –

Antwort

1

Sie können nodeName durch . teilen und für jedes Stück das Objekt navigieren.

var result; 
result = obj['Education']; 
result = obj['Year']; 

console.log(result); // 2012 

Beispiel:

var obj = { 
 
    "FirstName": "Fawad", 
 
    "LastName": "Surosh", 
 
    "Education": {"University": "ABC", "Year": "2012"} 
 
}; 
 

 
var nodeName = 'Education.Year'; 
 

 
var result = nodeName.split('.').reduce((a, b) => { 
 
    a = a[b]; 
 
    return a; 
 
}, obj); 
 

 
document.getElementById('result').value = result;
<input id='result' type='text' />