js判断两个对象是否相等
时间: 2023-06-26 20:08:12 浏览: 96
JavaScript比较两个对象是否相等的方法
5星 · 资源好评率100%
在 JavaScript 中,判断两个对象是否相等有多种方法,其中一种比较简单的方式是使用深度比较函数。以下是一个使用深度比较函数比较两个对象是否相等的示例代码:
```javascript
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
if (typeof obj1 == "object" && obj1 != null && typeof obj2 == "object" && obj2 != null) {
if (Object.keys(obj1).length != Object.keys(obj2).length) {
return false;
}
for (var prop in obj1) {
if (obj2.hasOwnProperty(prop)) {
if (!deepEqual(obj1[prop], obj2[prop])) {
return false;
}
} else {
return false;
}
}
return true;
}
return false;
}
// 示例
const obj1 = { a: 1, b: 2, c: [1, 2, 3] };
const obj2 = { a: 1, b: 2, c: [1, 2, 3] };
console.log(deepEqual(obj1, obj2)); // true
const obj3 = { a: 1, b: 2, c: [1, 2, 3] };
const obj4 = { a: 1, b: 2, c: [1, 2, 4] };
console.log(deepEqual(obj3, obj4)); // false
```
这里的 `deepEqual` 函数会递归比较两个对象的属性是否相等。如果两个对象的属性不同,或者对象的属性数量不同,那么函数会返回 `false`,否则返回 `true`。
阅读全文