当前位置: 首页 > Web前端 > JavaScript

js里if逻辑太多,常见评论优化

时间:2023-03-27 10:41:14 JavaScript

1.单判断通用优化如果判断逻辑过多,在通用codereview中,肯定会出现以下情况被诟病。constgitObj=(type)=>{if(type==='张三'){return'张三的对象';}if(type==='李四'){return'李四的对象';}if(type===233){return'testObj';}if(type==='testUser'){return'testUser';}返回'-';};单判断常用优化方法constgitObj=(type)=>{constnewMap={'张三':'张三的Obj','李四':'李四的Obj',233:'testObj','testUser':'测试用户哈哈哈',};返回新地图[类型]||'--';};2。多重判断逻辑的共同优化ToomanyjudgmentlogicsconstgitObj=(type,name)=>{if(type==='张三'){return'张三的Obj';}if(type==='李四'&&name==='李四类型'){return'李四对象';}if(type==='李4'&&name==='李四typePlus'){return'李四ObjPlusObj';}if(type==='小明'&&name==='小明类型'){return'小明Obj';}if(type==='小明'&&name==='小明typePlus'){return'小明明ObjPlus';}返回'-';};优化方法1constgitObj=(type,name)=>{letnewArr=[['张三',false,'张三的Obj'],['李四','李四类型','李四Obj'],['李四','李四typePlus','李四ObjPlusObj'],['小明','小明类型','小明Obj'],['小明','小明typePlus','小明ObjPlus']];letres=newArr.filter((item)=>{returntype===newArr[0]&&(type.name===newArr[1]||!!type.name===!!newArr[1]);});返回res.length===0?'--':res[0][2];};优化方法2constgitObj=(type,name)=>{constmap={'张三':'张三的Obj','李四':{'李四类型':'李四Obj','李四typePlus':'李四ObjPlusObj',},'小明':{'小明类型':'小明Obj','小明typePlus':"小明ObjPlus"}}return(name?map[type][name]:map[类型])||'--';};