常用的算法(持续更新)

1. escapeHTML()   将输入的html转义;(防止利用前端输入框输入脚本内容进行恶意攻击的,将输入转义)

function escapeHTML(str) {
    return String(str)
            .replace(/&/g, '&')
            .replace(/"/g, '"')
            .replace(/'/g, ''')
            .replace(/</g, '&lt;')
            .replace(/>/g, '&gt;')
}

2. 前端处理数据新增和更新, 不存在就增加,存在就更新

var list = []
 function addOrUpdate (item, id) {
   // list
  if (list.length === 0) { // 判断数组长度为0,为新增
    this.list.push(item)
  } else { // 数组长度大于0,遍历,存在就更新,不存在就新增
    // 判断是否存在标识,存在变为true
    var flag = false
    list.forEach((item, index) => { // 遍历数组
      if (item.id === id) {
        this.list.splice(index, 1, form)// 存在更新
        flag = true
      }
    })
    // 新增
    if (!flag) {
      list.push(form)
    }
  }
}

3. 判断对象是否存在属性,es6

结果大于0 存在属性,等于0就是对象为空对象

Object.keys(obj).length

4. 把当前日期格式化为 YY-MM-DD

dateFormart () {
      var d = new Date()
      var year = d.getFullYear()
      var mon = d.getMonth() + 1
      var day = d.getDate()
      var day1 = new Date()
      day1.setTime(day1.getTime() - 9 * 24 * 60 * 60 * 1000)
      var date = year + '-' + (mon < 10 ? ('0' + mon) : mon) + '-' + (day < 10 ? ('0' + day) : day)
      return date
    }

5. 累加计算

// good
let sum = 0
numbers.forEach(num => sum += num)

// better
const sum = numbers.reduce((total, num) => total + num, 0)

6. 指定深度扁平化数组

const flatten = (arr, depth = 1) =>
  arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);

flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值