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

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

求大佬指點哈!如何利用字符串路徑獲取對象集合的值怎么回事哈?。?/h1>

//需求:寫一個方法,可以利用字符串路徑獲取對象集合的值,當值不存在時返回錯誤信息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貢獻1844條經驗 獲得超8個贊

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

TA貢獻1860條經驗 獲得超9個贊

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];
}
};
可以在對[]進行判斷,可以有很多優化的地方。
                            
查看完整回答
反對 回復 2019-08-05
  • 2 回答
  • 0 關注
  • 288 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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