【发布时间】:2013-07-15 01:14:09
【问题描述】:
我有
data =
{
'first': {
'number': 1,
'text': 'Ya.'
},
'second': {
'number': 10,
'text': 'Da.'
}
};
我真的很想像这样访问它:
number = data['first.number'];
其实是更灵活的方式,比如:
numberOrText = data[memberName+'.'+propertyName];
有什么轻量级的库,或者 sn-p 你可以推荐吗? 这是 - https://github.com/martinvl/KVCObject - 太酷了,但有点开销。
【问题讨论】:
-
data[memberName][propertyName]有什么问题??? -
或 data.memberName.propertyName?
-
如果你的路径没有非冗长的字符,你可以评估路径。您还可以使用 [].map() 或在爆炸路径上的循环每次更深入一步,将分支设置为根并继续...
-
@dandavis 其中一些将是我的解决方案,谢谢。 Eval 听起来非常简单的解决方案。您可以发布作为接受的答案吗?
-
@mohkhan:我将引用(数组 keyPaths)存储到 DOM 元素数据集上的控制器对象。像 data-key-path="viewController.controls.transform.opacitySlider";然后通过获取文档的 keyPath 的值来引用该对象。
标签: javascript object accessor kvc