1.用es5与es6分别封装一个数组去重的方法
es5:
var arr = [5,5,2,1,2,4,4];
function quchong(arr){
var brr =[] ,
obj ={} ;
for(var i=0; i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=true;
brr.push(arr[i])
}
}
return (brr);
}
es6中使用new Set()去重
问题:同值不同类型,不能去除
var set = new Set(arr);
console.log(set);
2.封装一个对象深拷贝的方法
var people = {
name:'xxx',
friends:['people1','people2','peopple3'],
info:{
phone:'133xxxxxxxx',
age:'18',
sex:'man'
}
}
function deepCopy(p, c) {
var c = c || {};
for (var i in p) {
if (typeof p[i] === 'object') {
c[i] = (p[i].constructor === Array) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
return c;
}
var person = deepCopy(people);
3.身份证的正则表达式
var reg1 = /^\d{17}[X\d]$/;// \d{17}表示数字重复17次,[X\d]$表示以数字或X结束
var str1 = '13070619830407031X' ;
console.log( reg1.test(str1) )