首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用字符串键访问嵌套JavaScript对象?

如何使用字符串键访问嵌套JavaScript对象?
EN

Stack Overflow用户
提问于 2018-07-24 23:43:57
回答 2查看 0关注 0票数 0

现有如下数据结构:

代码语言:txt
复制
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'
        }
    ]
};

想使用以下变量访问数据:

代码语言:txt
复制
var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3[0].name";

是否可以使用javascript或JQuery来实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2018-07-25 08:17:15

你应该是想实现以下代码:

代码语言:txt
复制
var part1name = someObject.part1.name;
var part2quantity = someObject.part2.qty;
var part3name1 =  someObject.part3[0].name;

可以这样试试:

代码语言:txt
复制
var part1name = someObject["part1"]["name"];
var part2quantity = someObject["part2"]["qty"];
var part3name1 =  someObject["part3"][0]["name"];

或者这样:

代码语言:txt
复制
var partName = "part1";
var nameStr = "name";

var part1name = someObject[partName][nameStr];
最后输出:
代码语言:txt
复制
var partName = "part1.name";

var partBits = partName.split(".");

var part1name = someObject[partBits[0]][partBits[1]];
票数 0
EN

Stack Overflow用户

发布于 2018-07-25 08:56:18

需使用以下技巧:

代码语言:txt
复制
new Function('_', 'return _.' + path)(obj);

代码语言:txt
复制
new Function('_', 'return _.part1.name')(someObject);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档