收集整理js常用工具函数

(更新于2018.12.15 )持续更新...

收集整理的一些前端开发常用的工具函数

数组去重方法


function (arr)  {
    let res = []
    let json = {}
    for (let i = 0; i < this.length; i++) {
      if (!json[this[i]]) {
        res.push(this[i])
        json[this[i]] = 1
      }
    }
    return res
}

// es6 数组去重
Array.from(new set(arr))

数组快速排序


function quickSort (arr) {
    if (arr.length <= 1) {
        return arr
    }
    let pivotIndex=Math.floor(arr.length / 2);
    let pivot=arr.splice(pivotIndex, 1)[0];
    let left = []
    let right = []
    for (let i = 0; i < arr.length; i++) {
        if(arr[i] < pivot) {
            left.push(arr[i])
        }else{
            right.push(arr[i])
        }
    }
    return quickSort(left).concat([pivot], quickSort(right))
}

匹配身份证(15位或18位)


function isIdCardNo (num) {
  num = num.toUpperCase()
   //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
  if (!(/(^/d{15}$)|(^/d{17}([0-9]|X)$)/.test(num))) {
    alert('输入的身份证号长度不对,或者号码不符合规定!/n15位号码应全为数字,18位号码末位可以为数字或X。')
    return false
  }
}

找出一个字符串中出现最多的字符及次数


const str = 'zheshiceshidaima!'
const obj = {}
for (let i=0; i < str.length; i++) {
    let char = str.charAt(i)
    if (obj[char]) {
        obj[char]++
    } else {
        obj[char] = 1
    }
}

let max = 0
let maxKey
for (let key in obj) {
    if (max < obj[key]) {
        max = obj[key]
        maxKey = key
    }
}
console.log(maxKey, max)

你可能感兴趣的:(收集整理js常用工具函数)