javascript - граф объекта запроса? - PullRequest
1 голос
/ 17 июня 2010

Учитывая объект, подобный этому:

var obj = {
        first:{
            second:{
                third:'hi there'
            }
        }
    };

И ключ как этот "first.second.third"

Как я могу получить значение вложенного объекта "привет там"?

Я думаю, может быть, функция Array.reduce могла бы помочь, но не уверен.

Ответы [ 2 ]

5 голосов
/ 17 июня 2010

Да, с Array.prototype.reduce вы можете получить сладкую и короткую функцию:

function getNestedValue(obj, key) {
  return key.split('.').reduce(function (a, b) { return a[b]; }, obj);
}

getNestedValue(obj, "first.second.third"); // "hi there"

Некоторые примечания:

  • Array.prototype.reduce является частьюECMAScript 5-е издание, доступно во всех браузерах, кроме IE, вы можете включить реализацию из здесь .
  • Имена свойств объекта могут содержать точки, если вы строите объект, используя скобочную записьнапример, obj['my.key'] = 'value';
2 голосов
/ 17 июня 2010

Понял:

args.reduce(function(prev, current) {return prev[current];}, obj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...