像这样,需要拿到传入参数的padding值,但是不确定是否传入了eleStyle,更不确定eleStyle中的其他属性是否传入,目前使用三元表达式进行判断,但依然有些繁琐...data:{show:true,//可能传入的参数eleStyle:{//以下某一参数均有可能不传width:100,height:100,padding:20,}}letpadding=eleStyle&&eleStyle.padding?eleStyle.padding:10//当eleStyle.padding为0时,所得到的padding值仍为默认,所以可能应该是下面这种:letpadding=eleStyle&&eleStyle.padding!==undefined?eleStyle.padding:10如果需要的参数取自更深层的对象,那这样写也显得十分臃肿,所以请教一下有没有什么好的方法解决这种问题...
2 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
letpadding='eleStyle.padding'.split('.').reduce((res,key)=>{returnres!=null?res[key]:null},data)padding=padding!=null?padding:10;
MMMHUHU
TA贡献1834条经验 获得超8个赞
30-seconds-of-code里有算是很优雅的写法,可以参考一下。其他做法的内部实现可能不一样,但理念很类似。constget=(from,...selectors)=>[...selectors].map(s=>s.replace(/\[([^\[\]]*)\]/g,'.$1.').split('.').filter(t=>t!=='').reduce((prev,cur)=>prev&&prev[cur],from));
添加回答
举报
0/150
提交
取消