第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何利用字符串路徑獲取對象集合的值感激不盡

如何利用字符串路徑獲取對象集合的值感激不盡

胡子哥哥 2019-09-09 21:07:13
//需求:寫一個方法,可以利用字符串路徑獲取對象集合的值,當值不存在時返回錯誤信息letobject={'a':[{'b':{'c':3}}]};let[err,result]=fn.get(object,'a[0].b.c');console.log(err,result);//=>null,3let[err,result]=fn.get(object,'a[0].d.c');console.log(err,result);//=>Iserrabout'd',nullfunctionfn(){/**aboutcode**/}有考慮到split('.'),但是a[0]這種怎么處理呢?謝謝!
查看完整描述

2 回答

?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

說個簡單思路,先split('.'),再split(']')唄,length>1了就說明有[],replace掉[,就是屬性名了。
因為JS的語法特性,不光是數(shù)組,普通對象也可以用[]取屬性的,比如你上面的例子,實際等效于:a0['c']
                            
查看完整回答
反對 回復 2019-09-09
?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

letobject={a:[{b:{c:3}}]};
constfn={
get(object,condition){
letconditionItem=condition.split(".");
letdata=object;
for(leti=0;iletitem=conditionItem[i].replace(/\[|\]/g,"").split("");
for(letj=0;jtry{
data=data[item[j]];
}catch(error){
return[`Iserrabout${conditionItem[i-1]}`,null];
}
}
}
return[null,data];
}
};
可以在對[]進行判斷,可以有很多優(yōu)化的地方。
                            
查看完整回答
反對 回復 2019-09-09
  • 2 回答
  • 0 關(guān)注
  • 318 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號