繁体   English   中英

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

[英]How do I convert an array of strings to an object property in javascript?

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

例如:

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

我有一个阵列

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

只需访问obj,迭代数组获得4的效率最高是什么?

这是因为不知道对象有多少维度。

使用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) ); 

也就是说,用最新最好的语言编写它会好得多,如果你需要支持古老的浏览器,可以在以后使用Babel在构建步骤中自动将代码转换为ES5。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM