一个带点符号的字符串 如何转换成点表示法或者括号表示法的表达式

题目描述

现在有一个字符串是类似 "a.b.c.e"
我想转化成 a.b.c.e的对象表达式,进行读取值和赋值.
请问有没有什么方法?越简单越好.

题目来源及自己的思路

相关代码

str = "a.b.c.e"
a.b.c.e

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2k
2 个回答
var str = "a.b.c.e";
var a={b:{c:{e:'kk'}}}
new Function('return '+str)();
"kk"
var str = "a.b.c.e";
var a={b:{c:{e:'kk'}}}
new Function(str+'='+'"abc"')();
a.b.c.e// "abc"

那你直接用lodash 这种库吧

var object = { 'a': [{ 'b': { 'c': 3 } }] };
 
_.get(object, 'a[0].b.c');
// => 3
 
_.get(object, ['a', '0', 'b', 'c']);
// => 3
 
_.get(object, 'a.b.c', 'default');
// => 'default'
推荐问题