请用js写一个遍历两个数组属性值不同的算法
时间: 2024-05-09 22:21:10 浏览: 105
以下是一个用 JavaScript 编写的算法,可以遍历两个数组,找到它们中属性值不同的元素:
```javascript
function findDifferentElements(arr1, arr2) {
// 创建一个空数组,用于存储不同的元素
const differentElements = [];
// 遍历第一个数组中的每个元素
for (let i = 0; i < arr1.length; i++) {
// 判断第一个数组中的元素是否存在于第二个数组中
const index = arr2.findIndex(el => el.id === arr1[i].id);
if (index !== -1) {
// 如果存在,则比较它们的属性值是否相同
if (arr2[index].name !== arr1[i].name || arr2[index].age !== arr1[i].age) {
// 如果属性值不同,则将它们添加到不同的元素数组中
differentElements.push(arr1[i], arr2[index]);
}
} else {
// 如果不存在,则将它添加到不同的元素数组中
differentElements.push(arr1[i]);
}
}
// 遍历第二个数组中的每个元素
for (let i = 0; i < arr2.length; i++) {
// 判断第二个数组中的元素是否存在于第一个数组中
const index = arr1.findIndex(el => el.id === arr2[i].id);
if (index === -1) {
// 如果不存在,则将它添加到不同的元素数组中
differentElements.push(arr2[i]);
}
}
// 返回不同的元素数组
return differentElements;
}
```
这个算法假设每个数组中的元素都有一个 `id` 属性,以便在两个数组之间进行匹配。如果两个数组中具有相同 `id` 的元素具有不同的属性值,则将它们都添加到不同的元素数组中。如果一个数组中有一个元素在另一个数组中不存在,它将被添加到不同的元素数组中。最后,函数返回不同的元素数组。
阅读全文