亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用字符串鍵訪問嵌套的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 關注
  • 737 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號