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

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

js對象的屬性名是變量,除了使用eval,還有沒有別的方式獲取屬性值

js對象的屬性名是變量,除了使用eval,還有沒有別的方式獲取屬性值

滄海一幻覺 2019-03-07 10:11:55
例如,有一個對象:var china={    beijing:{        chaoyang:{            number:1234        }    }}現有一拼湊出的變量:var key = "beijing.chaoyang.number"所以可以通過eval("china."+key)來獲取number。想知道除了eval之外,有沒有其他方法實現相同效果。使用slice的方式將字符串分隔成["beijing","chaoyang","number"],然后用china"beijing"["number"]的方法倒可行,但實際情況是層級不是固定的,需要增加多個判斷,所以暫不考慮。
查看完整描述

4 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

const getDeepValue = (p, o) => p.reduce((xs, x) => (xs && xs[x]) ? xs[x] : null, o);

var china={

    beijing:{

        chaoyang:{

            number:1234

        }

    }

}

console.log(getDeepValue(['beijing', 'chaoyang', 'number'], china));  //1234


查看完整回答
反對 回復 2019-03-12
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

你可以通過var obj = {};obj[key+'xxxx'] = 'vvvvvvvvvvvv';來調用

查看完整回答
反對 回復 2019-03-12
  • 4 回答
  • 0 關注
  • 917 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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