0
点赞
收藏
分享

微信扫一扫

记录最近项目中用到的处理数据的方法

江南北 2021-09-23 阅读 49
将复杂数据类型的null过滤成空串
 replaceNull(obj){
     for(var k in obj){
       if( obj[k]==null){
         obj[k] = ""
       }
       if(typeof obj[k] == "object"){
         this.replaceNull(obj[k])
       }
     }
     return obj
   },
验证xml/html格式的正确性
validateXML(xmlContent) {
      //errorCode 0是xml正确,1是xml错误,2是无法验证
      var xmlDoc, errorMessage, errorCode = 0;
      // code for IE
      if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlContent);
        if (xmlDoc.parseError.errorCode != 0) {
          errorCode = 1;
          console.log('xml/html格式不正确');
        }
        else {
          errorMessage = "格式正确";
        }
      }
      else 
      if (document.implementation.createDocument) {
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(xmlContent, "text/xml");
        var error = xmlDoc.getElementsByTagName("parsererror");
        if (error.length > 0) {
          if (xmlDoc.documentElement.nodeName == "parsererror") {
            errorCode = 1;
            errorMessage = xmlDoc.documentElement.childNodes[0].nodeValue;
          } else {
            errorCode = 1;
            errorMessage = xmlDoc.getElementsByTagName("parsererror")[0].innerHTML;
          }
        }
        else {
          errorMessage = "格式正确";
          console.log('格式正确');
        }
      }
      // else {
      //   errorCode = 2;
      //   errorMessage = "浏览器不支持验证,无法验证xml正确性";
      //   console.log('浏览器不支持验证,无法验证xml正确性');
      // }
      return {
        "msg": errorMessage,
        "error_code": errorCode
      };
  },
判断收集到的数据是否为json
Updata (objJson) {
 if (!objJson) {
     return this.$message('示例内容不能为空 !')
  }
    var str = objJson.replace('\r','').replace('\n','').replace('\t','')
    if (str.charAt(0)=='{'){
        try {
          var obj=JSON.parse(str);
          if(Object.keys(obj).length==0){
            return this.$message('示例内容不能为空对象 !')
          }else if(typeof obj == 'object' && obj ){
            // console.log('是json字符串')
           ...自己的逻辑代码
            return true;
          }else{
            return false;
          }
        } catch(e) {
          this.$message('必须是正确的JSON格式!')
          console.log(str +'json格式不正确!');
          return false;
        }
      } else {
        return this.$message('示例内容格式不正确 !')
      }
}
递归取出最后一层children组成的数组
    function findLastChildrens(arr) {
      var result = [];
      for (var i in arr) {
        var obj = arr[i];
        if (!obj.childrenNode) {
          continue;
        }
      // vue中使用,递归时记得加this 
        var findResult = findLastChildrens(obj.childrenNode);
        if (findResult.length === 0) { //当前children其下再没有children出现,说明当前children是最后一级
          result.push(obj.childrenNode);
        } else { //不是最后一级children的话
          result = result.concat(findResult);
        }
      }
      return result;
    }

findLastChildrens(arr1) //返回你要所有最后一级的children组成的数组
举报

相关推荐

0 条评论