javascript - 查询对象图?

Sco*_*ach 1 javascript object

鉴于这样的对象:

var obj = {
        first:{
            second:{
                third:'hi there'
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

像这样的关键"first.second.third"

如何获取嵌套对象的值"hi there"?

我想也许Array.reduce函数可能会有所帮助,但不确定.

CMS*_*CMS 5

是的,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"
Run Code Online (Sandbox Code Playgroud)

一些说明:

  • Array.prototype.reduce是ECMAScript第5版的一部分,除了IE之外的所有浏览器都可以使用,您可以在这里包含一个实现.
  • 如果使用括号表示法构建对象,则对象属性名称可能包含点 obj['my.key'] = 'value';