前端js處理對象數(shù)據(jù)異常,讓程序更健壯

Q:用途是啥?
A:告別后端數(shù)據(jù)返回?zé)o休止的判斷對象值

/*
uncheck為false返回[code, result] code為1才會(huì)有正確的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);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,176評論 0 23
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,870評論 0 10
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,144評論 0 2
  • 不支持上傳文件,所以就復(fù)制過來了。作者信息什么的都沒刪。對前端基本屬于一竅不通,所以沒有任何修改,反正用著沒問題就...
    全棧在路上閱讀 2,071評論 0 2
  • 昨晚 匆匆騎自行車去雙楠好吧 匆匆倒騰完 又匆匆騎車去找他們 又回到玉林 一起吃個(gè)火鍋?說實(shí)話一說吃飯除了火鍋就再...
    aluaa閱讀 232評論 0 2

友情鏈接更多精彩內(nèi)容