【发布时间】:2014-05-01 15:02:52
【问题描述】:
有一种情况,我从外部来源获得了一条路径,我需要将该键从对象中拉出并返回值。
文档架构在设计时也是未知的,因此必须完全灵活。
eval() 做我想做的事,但我正在尽我所能,看看是否还有其他方法。
var obj = {"a": {"b": {"c": 42}, "d": [8,9]}}
var path = 'a.b.c';
eval('obj.' + path);
42
任何人都知道没有“eval”的方法,我可以使用字符串“a.b.c”在 obj 中查找嵌套值?
这也必须支持对列表的索引:
var path = 'a.d[1]';
eval('obj.' + path);
9
如果 jQuery 提供了一个可行的解决方案,我可以使用它,我只是看不到任何明显的东西。
谢谢!
【问题讨论】:
-
嗯,是的,这很容易(ish)。解析路径,然后使用括号表示法访问属性。
-
@JonathanLonowski:我喜欢那个问题中的
Object.byString函数:-) -
谢谢大家!不知道我怎么错过了另一个类似的问题,但是那里的答案之一,加上下面@RocketHazmat 的答案让我得到了我需要的东西。
标签: javascript jquery