js两个数组比对去重返回这新数组
时间: 2024-11-19 12:16:28 浏览: 46
在JavaScript中,你可以使用多种方法来比较两个数组并去除重复元素,创建一个新的数组。以下是几种常见的做法:
1. **Set 结合数组方法**:
```javascript
function arrayUnionWithoutDuplicates(arr1, arr2) {
return [...new Set([...arr1, ...arr2])];
}
```
2. **Array.from 和 filter**:
```javascript
function arrayUnion(arr1, arr2) {
return Array.from(new Set(arr1.concat(arr2)));
}
```
3. **reduce**:
```javascript
function arrayUnionWithoutDuplicates(arr1, arr2) {
return arr1.reduce((acc, val) => !arr2.includes(val) ? acc.concat(val) : acc, []);
.concat(arr2.filter(uniqueVal => !acc.includes(uniqueVal)));
}
```
4. **lodash库的uniqBy** (如果项目依赖了lodash):
```javascript
const _ = require('lodash');
function arrayUnionWithoutDuplicates(arr1, arr2) {
return _.uniqBy([...arr1, ...arr2], 'someKeyIfYouWantToCompareValues');
}
```
以上函数会合并两个数组,并移除其中的重复项。如果你需要基于某些属性进行去重,可以提供相应的键(如`'someKeyIfYouWantToCompareValues'`)作为`uniqBy`或`filter`的比较依据。
阅读全文