我有这样的数据结构:
var someObject = {
'part1' : {
'name': 'Part 1',
'size': '20',
'qty' : '50'
},
'part2' : {
'name': 'Part 2',
'size': '15',
'qty' : '60'
},
'part3' : [
{
'name': 'Part 3A',
'size': '10',
'qty' : '20'
}, {
'name': 'Part 3B',
'size': '5',
'qty' : '20'
}, {
'name': 'Part 3C',
'size': '7.5',
'qty' : '20'
}
]
};
我想使用这些变量访问数据:
var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3[0].name";
part1name 应填写 someObject.part1.name
的值,即“Part 1”。与填充 60 的 part2quantity 相同。
无论如何用纯javascript或JQuery来实现这一点?
原文由 Komaruloh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我只是根据我已经拥有的一些类似代码制作了这个,它似乎可以工作:
用法::
请参阅 http://jsfiddle.net/alnitak/hEsys/ 上的工作演示
编辑 有些人注意到,如果传递一个字符串,其中最左边的索引不对应于对象内正确嵌套的条目,则此代码将引发错误。这是一个有效的问题,但恕我直言,最好在调用时使用
try / catch
块来解决,而不是让此函数静默返回undefined
无效索引。