function isEqual(obj1, obj2) {
// 先判断这俩是不是对象或者数组类型的
if ((typeof (obj1) !== "object" && obj1 !== null) || (typeof (obj2) !== "object" && obj2 !== null)) {
return obj1 === obj2
}
// 如果特意传的就是两个指向同一地址的对象
if (obj1 === obj2) {
return true
}
// 如果key的个数都不一样那么肯定不能相等 return false
let obj1key = Object.keys(obj1)
let obj2key = Object.keys(obj2)
if (obj1key.length !== obj2key.length) {
return false
}
for (key in obj1) {
if (!isEqual(obj1[key], obj2[key])) {
return false
}
}
return true
}
手写lodash.isEqual() 判断两个对象是否相等
于 2022-03-07 12:15:00 首次发布
关键词由CSDN通过智能技术生成