js随笔

作者: sunshineLWZL | 来源:发表于2018-10-31 16:47 被阅读0次

    validatePhone

    function validatePhone (str) {
      if (!str) return false
      return /^(0|86|17951)?(13[0-9]|15[012356789]|17[0678]|18[0-9]|14[57])[0-9]{8}$/g.test(str)
    }
    

    createAsyncValidate

    function createAsyncValidate (func, message, required = false, trigger = 'blur') {
      return {
        trigger,
        validator: (rule, value, callback) {
          if ((!required && value === '') || func(value) {
            callback() 
          } else {
            callback(new Error(message))
          }
        }
      }
    }
    

    对象key 值替换

    需求:后端返回的数据和前端需要的数据格式不同,例如前端用了一个组件库,不好修改

    // 后端返回数据
    result = [
      {
        value: '1',
        list: [
         {
           value: '1-1',
           list: []
         }   
       ]
      }
    ]
    // 前端想将数据中的 value 替换成 label,list 替换成 child,其中 list 不确定有几层
    
    function transformData (arr) {
      return arr.map(item => {
        if (Array.isArray(item.list) {
          return {
            label: item.value,
            child: transformData(item.list)
          }
        } else {
          return {
            label: item.value
          }
        }
     }
    }
    

    对象数组去重 (对象中没有函数)

    const arr = Array.from(new Set(arr.map(item => JSON.stringfy(item))).map(item => JSON.parse(item)
    

    相关文章

      网友评论

          本文标题:js随笔

          本文链接:https://www.haomeiwen.com/subject/dqcrzftx.html