代码之家  ›  专栏  ›  技术社区  ›  MTK

以编程方式生成对递归对象键的引用[重复]

  •  -1
  • MTK  · 技术社区  · 6 年前

    这个问题已经有了答案:

    假设这个字符串:

    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 数组;

    2 回复  |  直到 6 年前
        1
  •  1
  •   CertainPerformance    6 年前

    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)
    );
        2
  •  1
  •   D. Seah    6 年前

    var string = 'abcd';
    var arr = string.split('');
    
    var result = arr.reverse().reduce(function(obj, key) {
      var o = {};
      o[key] = obj;
      return o;
    }, {});