使用键的变量访问嵌套对象的元素?

时间:2015-08-07 12:41:18

标签: javascript

愚蠢的例子:

<script>
var a = {
    'b' : {
        'c' : "success!!"
    }
};
var d = 'b.c';
</script>

如果我无法使用明显的解决方案success!!a.b.c,而是必须使用a['b']['c'],我该如何访问d?我试过了a[d],似乎没有做到这一点。我也试图摆弄eval()。这甚至可能吗?

2 个答案:

答案 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);