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'
Есть ли способ для реализации этого решения? Это потому, что мое имя узла извлекается из таблицы БД и не является конкретным.
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' />