在javascript中将字符串转换为嵌套对象的属性

我试图访问字符串“key1.key2”作为对象的属性.

例如 :

var obj = { key1 : {key2 : "value1", key3 : "value2"}};
var attr_string = "key1.key2";

变量attr_string是由“.”连接的嵌套对象中的一串属性.它可以是任何深度,如“key1.key2.key3.key4 ……”

我想像obj.attr_string这样给出obj [“key1”] [“key2”]的值,即“value1”

怎么做到这一点?

最佳答案 感谢@dfsq记住我使用eval.

这是我期待的,一种评估对象字符串属性的简单方法.

var obj = { key1 : {key2 : "value1", key3 : "value2"}};
var attr_string = "key1.key2";

var result = eval("obj."+attr_string);

不需要用“.”分割字符串.然后将它放在循环中以获取值. eval可以使用javascript代码语句评估任何字符串.

点赞