思路:先判断键值对个数是否相等,再判断对应key的value是否相等,
(objone,objtwo)=>{
let objoneLength = Object.keys(objone).length;
let objtwoLength = Object.keys(objtwo).length;
objoneLength !== objtwoLength && return false;
for(let i in objone){
objone[i] !== objtwo[i] && return false;
};
return true;
}
判断连个数组是否相等,思路相似,不同的是,数组有顺序
分顺序
(arrone,arrtwo)=>{
arrone.length !== arrtwo.length && return false;
for(let i in arrone){
arrone[i] !== arrtwo && return false;
};
return true;
}
不分顺序的话,首先进行排序,在按照上面的来
arrone = arrone.sort();
arrtwo = arrone.sort();
判断数组是否有重复值,这个挺简单,先排序,在比较相邻值
arr = arr.sort();
for(let i in arr){
arr[i] === arr[i+1] && return true;
}
return false;
数组去重,这个有很多的方法,利用ES6的方法,最为简单方便
arr = Array.from(new Set(arr))
arr = [...new Set(arr)];
对象深拷贝
let {...objCopy} = obj;
let objCopy = {...obj};
let objCopy = Object.asign({},obj);
let [...arrCopy] = arr;