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

如何在javascript中将字符串数组转换为对象属性?

  •  3
  • KingKongFrog  · 技术社区  · 6 年前

    转换字符串数组以访问objects属性的最佳方法是什么?

    例如:

    var obj = {
       a: {
          b: {
             c: 4
          }
       }
    };
    

    var arr = ['a', 'b', 'c'];
    

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

    reduce [prop] 每次通过 obj

    var obj = {
       a: {
          b: {
             c: 4
          }
       }
    };
    var arr = ['a', 'b', 'c'];
    
    console.log(
      arr.reduce((a, prop) => a[prop], obj)
    );

    对于ES5,只需将箭头函数转换为标准函数:

    var obj = {
       a: {
          b: {
             c: 4
          }
       }
    };
    var arr = ['a', 'b', 'c'];
    
    console.log(
      arr.reduce(function(a, prop) {
       return a[prop];
      }, obj)
    );