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)

相关文章

  • Node.js 有什么弊端

    《深入浅出 Node.js》阅读随笔 此文为《为什么选择 Node.js》姊妹篇,简单聊一下 Node.js 的缺...

  • Node.js 有必要写测试用例吗?

    《深入浅出 Node.js》阅读随笔 先说结论:很有必要!不单是 Node.js,除非是作为体验或者 Demo 演...

  • 异步编程的困惑

    《深入浅出 Node.js》阅读随笔 众所周知,Node.js 虽然也有部分同步编程的方式,但主要还是以后异步编程...

  • 发布/订阅模式

    《深入浅出 Node.js》阅读随笔 Node.js 下使用发布/订阅的模式写程序,可以很优雅的解藕业务逻辑,尤其...

  • Android与JS 交互

    这篇算是一个随笔记录吧,最近写了一个简单的js,并要与原生进行交互,之前只知道如何与js交互,但不知道js侧是如何...

  • js随笔

    validatePhone createAsyncValidate 对象key 值替换 需求:后端返回的数据和前端...

  • JS随笔

    JavaScript中数据类型 number string boolean undefined object nu...

  • js随笔

    forEach 中不能有异步代码 否则会直接跳过异步, 先执行后续代码在执行循环内的异步代码块查阅资料后发现大概是...

  • js 随笔

    js 执行机制: js执行上下文: 只有理解了js 执行上下文才能更好的理解 js变量提升以及 作用域和闭包 所谓...

  • JS随笔

    1、join() 方法用于把数组中的所有元素放入一个字符串; 2、split() 方法用于把一个字符串分割成字符串...

网友评论

      本文标题:js随笔

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