JS返回Object深度引用值
x={a:{b:{c:1}}}
这个Object, 如果是x.a还可以写作x['a'], 然而x.a.b.c却只能写作x['a']['b']['c'], 对于深度不定的Object来说, 会比较难以引用.
一个简单的方式是用危险的eval函数, 写作eval('x.a.b.c')
.
那么eval又这么危险, 又推荐了比较安全Function函数:
Function('return x.a.b.c')()
否则就要更加复杂啦:
function objValue(str){
var keys = str.split('.')
var current = this
for(var key of keys){ current = current[key] }
return current
}
objValue('x.a.b.c')