例如,有一个对象:var china={ beijing:{ chaoyang:{ number:1234 } }}现有一拼凑出的变量:var key = "beijing.chaoyang.number"所以可以通过eval("china."+key)来获取number。想知道除了eval之外,有没有其他方法实现相同效果。使用slice的方式将字符串分隔成["beijing","chaoyang","number"],然后用china"beijing"["number"]的方法倒可行,但实际情况是层级不是固定的,需要增加多个判断,所以暂不考虑。
4 回答
![?](http://img1.sycdn.imooc.com/5458463b0001358f02200220-100-100.jpg)
ibeautiful
TA贡献1993条经验 获得超5个赞
const getDeepValue = (p, o) => p.reduce((xs, x) => (xs && xs[x]) ? xs[x] : null, o);
var china={
beijing:{
chaoyang:{
number:1234
}
}
}
console.log(getDeepValue(['beijing', 'chaoyang', 'number'], china)); //1234
添加回答
举报
0/150
提交
取消