使用字符串键访问嵌套的JavaScript对象我有这样的数据结构: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's值填充,即“Part 1”。part2quantity与60相同。无论如何使用纯javascript或JQuery实现这一点?
5 回答
呼如林
TA贡献1798条经验 获得超3个赞
你必须自己解析字符串:
function getProperty(obj, prop) {
var parts = prop.split('.');
if (Array.isArray(parts)) {
var last = parts.pop(),
l = parts.length,
i = 1,
current = parts[0];
while((obj = obj[current]) && i < l) {
current = parts[i];
i++;
}
if(obj) {
return obj[last];
}
} else {
throw 'parts is not valid array';
}
}
这要求您还使用点表示法定义数组索引:
var part3name1 = "part3.0.name";
它使解析更容易。
添加回答
举报
0/150
提交
取消