js合并两个数组,把相同的数据都去掉
时间: 2024-02-02 13:40:43 浏览: 131
可以使用Array.filter()方法和Array.includes()方法来实现。具体实现代码如下:
```
let arr1 = [1, 2, 3, 4, 5];
let arr2 = [3, 4, 5, 6, 7];
let newArr = arr1.concat(arr2).filter((item, index, arr) => {
return arr.indexOf(item) === index && arr2.includes(item) === false;
});
console.log(newArr); // [1, 2, 6, 7]
```
这段代码合并了两个数组,并且去掉了相同的数据。使用Array.concat()方法可以合并两个数组,然后使用Array.filter()方法过滤掉相同的数据。其中,Array.indexOf()方法返回元素在数组中第一次出现的位置,如果该元素不在数组中,则返回-1。如果元素第一次出现的位置等于元素在数组中的位置,则保留该元素;否则,过滤掉该元素。同时,使用Array.includes()方法判断arr2中是否包含该元素,如果包含,则也过滤掉该元素。
相关问题
js 合并两个数组并去重
要在JavaScript中合并两个数组并去重,可以使用concat()方法和Set集合。首先,使用concat()方法将两个数组合并成一个新数组。然后,使用Set集合去除新数组中的重复元素。最后,将Set集合转换为数组。以下是一个示例代码:
```javascript
let arr1 = \[3, 5, 2, 3, 6\];
let arr2 = \[5, 2, 4, 6, 8, 7, 9, 2\];
let arr = arr1.concat(arr2); // 合并数组
let arrNew = Array.from(new Set(arr)); // 通过Set集合去重
console.log("arrNew", arrNew); // 输出去重后的数组
```
这段代码首先使用concat()方法将arr1和arr2两个数组合并成一个新数组arr。然后,通过new Set(arr)创建一个Set集合,Set集合会自动去除重复的元素。最后,使用Array.from()方法将Set集合转换为数组arrNew。最终,通过console.log()输出去重后的数组arrNew。
#### 引用[.reference_title]
- *1* *3* [js 两个数组(对象)去重合并](https://blog.csdn.net/weixin_40805079/article/details/84850745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [JS中数组的合并与去重](https://blog.csdn.net/zhengjingID/article/details/123429877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
两个数组比对去重合并成一个数组
在JavaScript中,可以使用多种方法对比两个数组并将它们去重后合并。一种常见的做法是利用Set数据结构,Set会自动去除重复项,然后再转换回数组。另一种方法是遍历其中一个数组,检查每个元素是否存在于另一个数组中,如果不在就添加。
以下是两种方法的示例:
**方法一:使用Set去重**
```javascript
function uniqueMerge(arr1, arr2) {
// 使用Set去重,然后合并两个数组
return [...new Set([...arr1, ...arr2])];
}
// 示例
const array1 = [1, 2, 3];
const array2 = [2, 3, 4];
const result = uniqueMerge(array1, array2);
console.log(result); // [1, 2, 3, 4]
```
**方法二:双重遍历去重**
```javascript
function uniqueMergeByChecking(arr1, arr2) {
const merged = [];
arr1.forEach(item => {
if (!merged.includes(item)) {
merged.push(item);
}
});
for (let item of arr2) {
if (!merged.includes(item)) {
merged.push(item);
}
}
return merged;
}
// 示例
const array1 = [1, 2, 3];
const array2 = [2, 3, 4];
const result = uniqueMergeByChecking(array1, array2);
console.log(result); // [1, 2, 3, 4]
```
阅读全文