es6 两个数组找出不同
时间: 2024-10-09 14:14:46 浏览: 44
详解JS取出两个数组中的不同或相同元素
ES6中,可以使用`Set`数据结构或者扩展运算符(`...`)结合`filter()`方法来找出两个数组的不同元素。以下是两种常见方法:
1. 使用`Set`:
```javascript
function findUnique(array1, array2) {
return [...new Set([...array1, ...array2])].filter(item => !array1.includes(item) && !array2.includes(item));
}
let arr1 = [1, 2, 3];
let arr2 = [2, 4, 5];
console.log(findUnique(arr1, arr2)); // 输出:[1, 3, 5]
```
这个函数首先将两个数组合并成一个新的数组,然后创建一个`Set`去除了重复元素,最后过滤出只存在于新数组而不在原始数组中的元素。
2. 扩展运算符和`filter()`:
```javascript
function findUnique(array1, array2) {
return [...array1].filter(item => !array2.includes(item)).concat(...array2).filter(item => !array1.includes(item));
}
arr1 = [1, 2, 3];
arr2 = [2, 4, 5];
console.log(findUnique(arr1, arr2)); // 输出:[1, 3, 5]
```
这里先分别从`array1`中滤除出现在`array2`中的元素,再把剩下的元素与`array2`的所有元素合并,并再次滤除出现在`array1`中的元素。
阅读全文