ts实现 两个数组比较,后面的数组增加的元素在前面的数组后面追加,删除的元素从第一个数组中剔除
时间: 2023-08-14 21:08:33 浏览: 175
JS两个数组比较,删除重复值的巧妙方法(推荐)
可以使用 TypeScript 中的数组方法来实现这个功能。具体实现如下:
```typescript
function compareArrays<T>(arr1: T[], arr2: T[]): T[] {
// 遍历 arr2 中新增的元素
for (const item of arr2) {
if (!arr1.includes(item)) {
// 如果 arr1 中不包含该元素,则将其追加到 arr1 的末尾
arr1.push(item);
}
}
// 遍历 arr1 中被删除的元素
for (let i = 0; i < arr1.length; i++) {
if (!arr2.includes(arr1[i])) {
// 如果 arr2 中不包含该元素,则将其从 arr1 中删除
arr1.splice(i, 1);
i--; // 删除元素后,需要将循环索引回退一位
}
}
return arr1;
}
// 示例
const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
const result = compareArrays(arr1, arr2);
console.log(result); // [2, 3, 4, 1]
```
这里定义了一个 `compareArrays` 函数,接收两个数组参数 `arr1` 和 `arr2`,返回合并后的数组。首先遍历 `arr2` 中新增的元素,如果 `arr1` 中不包含该元素,则将其追加到 `arr1` 的末尾。然后遍历 `arr1` 中被删除的元素,如果 `arr2` 中不包含该元素,则将其从 `arr1` 中删除。最后返回合并后的数组。
阅读全文