js 匹配两个对象数组中相同id相同属性的不同值 做记录 属性不确定
时间: 2024-05-03 08:16:46 浏览: 81
可以使用 JavaScript 的双重循环来实现这个功能。首先,遍历第一个对象数组,然后再遍历第二个对象数组,判断两个对象的 id 是否相同,如果相同则遍历两个对象的所有属性,判断属性值是否相同,如果不同则记录下来。
以下是示例代码:
```javascript
let arr1 = [{id: 1, name: 'Alice', age: 20}, {id: 2, name: 'Bob', age: 25}];
let arr2 = [{id: 1, name: 'Alice', age: 22}, {id: 3, name: 'Charlie', age: 30}];
let records = [];
for (let obj1 of arr1) {
for (let obj2 of arr2) {
if (obj1.id === obj2.id) {
for (let key in obj1) {
if (obj1[key] !== obj2[key]) {
records.push({
id: obj1.id,
property: key,
value1: obj1[key],
value2: obj2[key]
});
}
}
}
}
}
console.log(records);
```
输出结果为:
```javascript
[
{ id: 1, property: 'age', value1: 20, value2: 22 }
]
```
这个示例代码可以在浏览器的控制台中运行,也可以在 Node.js 等 JavaScript 运行环境中运行。
阅读全文