js随笔

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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,109评论 2 89
  • 我基本天天听《曾国藩》,在他身上我学到很多东西,郦波老师说他是一个挺有志趣的人,志趣一词加在曾老师的身上,...
    一把狂刀阅读 4,988评论 8 11
  • 用兵之道,形与势二。不知而一之,则沮于形、昡于势,而胜不可图,且坐受毙矣。何谓形?小大是也。何谓势?虚实是也。土地...
    千古八荒阅读 4,350评论 1 0
  • 早上好!#幸福实修#~每天进步1%#幸福实修12班@徐则兰--富阳# 20170927 【幸福三朵玫瑰】 昨日采摘...
    徐则兰阅读 981评论 1 1
  • 1、你如果认识从前的我,也许会原谅现在的我。 2、人生最大的幸福,是发现自己爱的人正好也爱着自己。 3、爱情本来并...
    Wuli_小君阅读 728评论 0 0