前端js处理对象数据异常,让程序更健壮

Q:用途是啥? A:告别后端数据返回无休止的判断对象值 ``` /* uncheck为false返回[code, result] code为1才会有正确的result uncheck为true返回result或者false */ function getObjVal(origin,args,uncheck){ var result = {}; var warning = { code : 1 }; if(!origin){ result = [0, false]; warning = { 'code' : 0, 'data' : { 'origin' : origin, 'args' : args } }; }else{ if(!args || !args.length){ result = [-2, false]; warning = { 'code' : -2, 'data' : "缺少keys" }; }else{ var key; for(var i = 0; i < args.length; i++){ key = args[i]; if(origin[key]){ origin = origin[key]; }else{ result = [-1, false]; warning = { 'code' : -1, 'data' : { 'origin' : origin, 'args' : args, 'breakKey' : key } }; break; } } } } if(uncheck){ if(warning.code != 1){ return false; }else{ return origin; } }else{ if(warning.code == 0){ console.warn(warning); }else if(warning.code == -1){ console.warn(warning); }else if(warning.code == -2){ console.warn(warning); }else{ // result = [1,origin]; } return result; } } ``` 基本用法: 1.let [code, result] = getObjVal({test :{ a : { b:1 }} },['test','a','b']); 2.let result2 = getObjVal({test :{ a : { b:1 }} },['test','a','b2'],true);

你可能感兴趣的:(前端js处理对象数据异常,让程序更健壮)