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

Другие вопросы по тегам