//深比较
function isObject(obj) {
return typeof obj==="object" ? true : false;
}
function isEqual(obj1,obj2) {
if(!isObject(obj1) || !isObject(obj2)) {
return obj1 === obj2;
}
if(obj1 === obj2) {
return true;
}
// 取出obj1和obj2的key
const obj1Keys = Object.keys(obj1);
const obj2Keys = Object.keys(obj2);
if(obj1Keys.length !== obj2Keys.length) {
return false;
}
for(let keys in obj1) {
// 递归比较obj1和obj2的值
var result = isEqual(obj1[keys],obj2[keys]);
if(!result) {
return false;
}
}
return true
}
var obj1 = {
a:100,
b:100,
c:{
x:100,
y:200
}
}
var obj2 = {
a:100,
b:100,
c:{
x:100,
y:200
}
}
console.log(isEqual(obj1,obj2)) //true
(JS)手写深比较
最新推荐文章于 2023-03-17 19:35:00 发布