前端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);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,516评论 0 23
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,186评论 0 10
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,202评论 0 2
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 6,049评论 0 2
  • 昨晚 匆匆骑自行车去双楠好吧 匆匆倒腾完 又匆匆骑车去找他们 又回到玉林 一起吃个火锅?说实话一说吃饭除了火锅就再...
    aluaa阅读 1,481评论 0 2

友情链接更多精彩内容