愚蠢的例子:
<script>
var a = {
'b' : {
'c' : "success!!"
}
};
var d = 'b.c';
</script>
如果我无法使用明显的解决方案success!!
或a.b.c
,而是必须使用a['b']['c']
,我该如何访问d
?我试过了a[d]
,似乎没有做到这一点。我也试图摆弄eval()
。这甚至可能吗?
答案 0 :(得分:1)
尝试拆分
var a = {
'b' : {
'c' : "success!!"
}
};
var d = 'b.c';
var splat = d.split('.');
console.log(a[splat[0]][splat[1]]);
答案 1 :(得分:1)
如果确实需要将字符串用点分隔,我会使用split和reduce:
var success = d.split(".").reduce(function (obj, key) {
return obj[key];
}, a);