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

题目描述

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

题目来源及自己的思路

相关代码

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

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

阅读 1.9k
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'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题