首页 > 解决方案 > javascript 以编程方式构建对递归对象键的引用

问题描述

假设这个字符串:

var string = 'abcd';

//I split the string by characters
var keys = string.split(''); // that return ['a','b','c','d'];

现在我有一个像这样的对象:

var object = {
    a:{
        b:{
            c:{
                d:{

                }
            }
        }
    }
}

如何以编程方式构建一些类似的东西 object['a']['b']['c']['d']:从keys数组中;

标签: javascript

解决方案


使用reduce,将当前嵌套对象作为累加器传递(以基础对象作为初始值):

var object = {
    a:{
        b:{
            c:{
                d:{
                  foo: 'bar'
                }
            }
        }
    }
};
var string = 'abcd';
var keys = string.split('');
console.log(
  keys.reduce((a, key) => a[key], object)
);


推荐阅读