生成一个判断两个数组是否有重复数据,并返回重复数据的js方法
时间: 2023-05-24 20:02:36 浏览: 224
A:
```js
function findDuplicates(arr1, arr2) {
var duplicates = [];
for (var i = 0; i < arr1.length; i++) {
if (arr2.indexOf(arr1[i]) !== -1 && duplicates.indexOf(arr1[i]) === -1) {
duplicates.push(arr1[i]);
}
}
return duplicates;
}
```
该方法接受两个参数,分别是两个数组 arr1 和 arr2,返回值为一个包含重复数据的新数组。具体实现过程是利用循环遍历数组 arr1 中的每个元素,再通过 indexOf 方法判断该元素是否在数组 arr2 中出现,如果出现,则将该元素放入新数组 duplicates 中,最后返回新数组即可。
相关问题
生成一个判断两个数组是否有重复数据的js方法
A:
以下是一个判断两个数组是否有重复数据的JavaScript方法:
```javascript
function hasDuplicate(arr1, arr2) {
// 将两个数组合并
const arr = arr1.concat(arr2);
// 创建一个空对象用于存储每个元素出现的次数
const obj = {};
// 遍历数组中的每个元素
for (let i = 0; i < arr.length; i++) {
// 如果元素已经存在于对象中,说明该元素重复了
if (obj[arr[i]]) {
return true;
}
// 否则,将该元素作为属性名存入对象中,并设置初始值为1
obj[arr[i]] = 1;
}
// 如果没有重复元素,返回false
return false;
}
```
该方法的思路是将两个数组合并成一个数组,然后遍历该数组中的每个元素,使用对象来记录每个元素出现的次数,如果某个元素的次数超过了1,则该元素就是重复元素,返回true。如果遍历完整个数组都没有重复元素,就返回false。
new Set()方法如何获取两个json数组集合删除重复的并生成新数据
`new Set()` 方法通常用于创建一个无序不重复元素的集合,这对于处理数组去重非常有用。如果你想从两个JSON数组集合中删除重复项,并将结果合并成一个新的数组,可以按照以下步骤操作:
1. 首先,你需要将这两个JSON数组转换为JavaScript的基本数据类型数组,比如字符串、数字或对象。因为Set只接受基本类型的输入。
```javascript
let arr1 = JSON.parse(jsonArray1);
let arr2 = JSON.parse(jsonArray2);
```
2. 然后,分别将这两个数组转换为Set:
```javascript
let set1 = new Set(arr1);
let set2 = new Set(arr2);
```
3. 使用`([...])`扩展运算符将两个Set合并,同时利用Set的特性自动去除重复项:
```javascript
let mergedSet = [...set1, ...set2];
```
4. 最后,你可以将合并后的Set再次转换回数组,得到的就是去重后的新数据:
```javascript
let uniqueArray = Array.from(mergedSet);
```
这里假设`jsonArray1`和`jsonArray2`是你想要合并的两个JSON数组。如果你需要保持原始JSON结构,你可以在转换Set之前对数组内的每个对象进行深拷贝,避免直接修改源数据。
阅读全文