求两个一维数组的交集,应该怎么实现
时间: 2024-03-05 08:54:14 浏览: 24
可以通过遍历其中一个数组,然后判断另一个数组中是否也有相同的元素来实现两个一维数组的交集。具体实现可以使用 `Array.filter()` 方法和 `Array.includes()` 方法。以下是一个示例代码:
```javascript
function getIntersection(arr1, arr2) {
return arr1.filter(item => arr2.includes(item));
}
```
在上面的代码中,我们首先通过 `Array.filter()` 方法遍历 `arr1` 数组,然后对于每一个元素,使用 `Array.includes()` 方法判断它是否也在 `arr2` 数组中出现过。如果是,就将它加入结果数组中。最后,返回结果数组即可。
以下是一个示例用法:
```javascript
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 4, 5, 6, 7];
const intersection = getIntersection(arr1, arr2);
console.log(intersection); // 输出 [3, 4, 5]
```
在上面的示例中,我们定义了两个数组 `arr1` 和 `arr2`,并使用 `getIntersection` 函数来获取它们的交集。最后,我们将结果打印到控制台上,可以看到它们的交集为 `[3, 4, 5]`。
相关问题
前端求两个一维数组的交集
前端也可以使用哈希表来解决这个问题。具体步骤如下:
1. 遍历第一个数组,将每个元素作为键存入 Set 集合中。
2. 遍历第二个数组,对于每个元素,如果它在 Set 集合中存在,就将它加入到结果集中,并从 Set 集合中删除。
3. 返回结果集即为两个数组的交集。
下面是使用 JavaScript 实现的代码:
```javascript
function intersection(nums1, nums2) {
const set = new Set(nums1);
const res = [];
for (const num of nums2) {
if (set.has(num)) {
res.push(num);
set.delete(num);
}
}
return res;
}
```
时间复杂度为 O(m+n),其中 m 和 n 分别为两个数组的长度。
python 求两个一维数组的交集
可以使用 Python 内置的 set 类型来实现:
```python
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]
intersection = list(set(arr1) & set(arr2))
print(intersection) # 输出 [3, 4, 5]
```
首先将两个数组转换为 set 类型,然后使用 & 运算符求交集,最后将结果转换为 list 类型。