(更新于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)