为了账号安全,请及时绑定邮箱和手机立即绑定

使用字符串键访问嵌套的JavaScript对象

使用字符串键访问嵌套的JavaScript对象

慕勒3428872 2019-05-22 15:04:28
使用字符串键访问嵌套的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";

它使解析更容易。

DEMO


查看完整回答
反对 回复 2019-05-22
  • 5 回答
  • 0 关注
  • 697 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信