js 对比两个对象值的差异,并把差异名返回,不使用第三方库
时间: 2024-02-27 11:56:12 浏览: 19
可以使用纯JavaScript来实现对比两个对象值的差异并返回差异名。
具体实现方法如下:
1. 分别获取两个对象的所有键名。
2. 遍历其中一个对象的键名,判断另一个对象是否包含该键名,如果不包含则说明存在差异。
3. 将存在差异的键名存入数组并返回。
以下是示例代码:
```javascript
function getObjectDiff(obj1, obj2) {
const keys1 = Object.keys(obj1); // 获取obj1的所有键名
const keys2 = Object.keys(obj2); // 获取obj2的所有键名
const diff = []; // 存放差异的键名
keys1.forEach(key => {
if (!keys2.includes(key)) { // 如果obj2不包含该键名,则存在差异
diff.push(key); // 将差异的键名存入数组
}
});
keys2.forEach(key => {
if (!keys1.includes(key)) { // 如果obj1不包含该键名,则存在差异
diff.push(key); // 将差异的键名存入数组
}
});
return diff; // 返回差异的键名数组
}
// 示例对象
const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = { a: 1, b: 4, d: 5 };
console.log(getObjectDiff(obj1, obj2)); // 输出 ['c', 'd']
```
相关推荐
![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_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)
![](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)