js两个数组做比较找出不同
时间: 2024-10-09 12:14:38 浏览: 35
详解JS取出两个数组中的不同或相同元素
在JavaScript中,你可以使用多种方法来比较两个数组并找出它们的不同元素。这里介绍一种常见的方法:
1. **Array.prototype.filter() 和 Array.prototype.indexOf()**:
```javascript
function findDifferences(arr1, arr2) {
return arr1.filter(item => !arr2.includes(item));
}
let diffArr = findDifferences(array1, array2);
```
这段代码首先创建一个过滤器函数,它会返回`array1`中不在`array2`中存在的元素。
2. **Set数据结构**:
JavaScript的Set是一种特殊的集合类型,没有重复值。可以先将数组转为Set,然后取差集:
```javascript
function findDifferences(arr1, arr2) {
return [...new Set([...arr1, ...arr2])].filter(item => arr1.includes(item) && !arr2.includes(item));
}
```
3. **reduce() 方法**:
使用`reduce()`遍历其中一个数组,并检查另一个数组中是否存在相同的元素:
```javascript
function findDifferences(arr1, arr2) {
return arr1.reduce((acc, item) => (arr2.includes(item) ? acc : [...acc, item]), []);
}
```
阅读全文