JS怎么判断两个对象的属性和属性值是否相同,写出来
时间: 2024-06-03 16:10:04 浏览: 6
使用深度比较的方法可以判断两个对象的属性和属性值是否相同,具体实现代码如下:
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
} else if (typeof obj1 == "object" && obj1 != null && typeof obj2 == "object" && obj2 != null) {
if (Object.keys(obj1).length != Object.keys(obj2).length) return false;
for (let prop in obj1) {
if (obj2.hasOwnProperty(prop)) {
if (!deepEqual(obj1[prop], obj2[prop])) return false;
} else return false;
}
return true;
} else return false;
}
使用deepEqual函数即可判断两个对象的属性和属性值是否相同。
相关问题
js 匹配两个对象数组中相同id相同属性的不同值 做记录
你可以使用循环遍历来比较两个对象数组中相同id相同属性的不同值。可以按照以下步骤进行操作:
1. 遍历第一个数组,对于每个对象,遍历第二个数组,查找具有相同id的对象。
2. 如果找到了相同id的对象,就比较它们的属性值是否不同。
3. 如果属性值不同,就将这些记录保存在一个记录数组中。
下面是一个简单的示例代码,假设你要比较的对象数组分别为`arr1`和`arr2`,它们都有一个`id`属性和一个`value`属性。
```javascript
let records = [];
for (let obj1 of arr1) {
for (let obj2 of arr2) {
if (obj1.id === obj2.id && obj1.value !== obj2.value) {
records.push({id: obj1.id, oldValue: obj1.value, newValue: obj2.value});
}
}
}
console.log(records);
```
这段代码会将所有有不同值的对象记录在`records`数组中,并将其打印出来。你可以根据自己的需求进行修改和扩展。
js判断两个对象是否完全相同
在JavaScript中,两个对象只有在它们引用的是同一个对象时才是相等的。如果你想要判断两个对象是否在属性和属性值方面完全相同,你可以使用深度比较函数。
以下是一个比较简单的深度比较函数的例子:
```javascript
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
if (typeof obj1 !== "object" || typeof obj2 !== "object" || obj1 == null || obj2 == null) {
return false;
}
let keys1 = Object.keys(obj1);
let keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
for (let key of keys1) {
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
return false;
}
}
return true;
}
```
这个函数会递归比较两个对象的属性和属性值,如果它们完全相等,那么返回true,否则返回false。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)