2016-04-06 5 views
0

Вот мой объект:Node.js: переменная выступать в качестве вложенного имени элемента для объекта

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

Вот мой node.js код:

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

Есть ли способ для реализации это решение? Это связано с тем, что мое имя узла извлекается из таблицы db и не является конкретным.

+2

[объекты Доступ к вложенным JavaScript с ключом строки] См (http://stackoverflow.com/questions/6491463/accessing-nested-javascript- objects-with-string-key), а также [Динамически доступ к объекту с использованием переменной] (http://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable) –

ответ

1

Вы можете разделить nodeName на . и для каждой части перемещаться по объекту.

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

console.log(result); // 2012 

Пример:

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' />

 Смежные вопросы

  • Нет связанных вопросов^_^