步骤
创建集合:
- 将
nums1
的所有元素放入一个Set
(命名为setNum1
),这个Set
会自动去除重复元素。初始化结果集合:
- 创建一个新的
Set
(命名为setRes
),用来存储nums1
和nums2
的共同元素,即最终的交集结果。遍历数组:
- 使用
for...of
循环遍历nums2
的每个元素。(for...in返回的是索引)查找交集元素:
- 对于
nums2
中的每个元素,检查它是否存在于setNum1
中。- 如果存在,说明这个元素是
nums1
和nums2
的共同元素,将它添加到setRes
中。转换并返回结果:
- 将
setRes
转换为数组,因为Set
对象不能直接作为数组返回,需要转换格式。- 返回这个数组,它包含了
nums1
和nums2
的所有交集元素。
- Set 对象是一个值的集合,类似于数组,但是成员的值都是唯一的,没有重复的值。
- 特点:
- 存储唯一的值。
- 可以记住添加元素的顺序。
- 元素是唯一的。
题目
示例代码
var intersection = function(nums1, nums2) {
// 创建一个 Set 类型的变量 setNum1,并将 nums1 数组的元素添加进去
// Set 类型可以自动去除数组中的重复元素
let setNum1 = new Set(nums1);
// 创建一个空的 Set 类型的变量 setRes,用于存储最终的交集结果
let setRes = new Set();
// 使用 for...of 循环遍历 nums2 数组中的每个元素
for(let i of nums2){
// 对于 nums2 中的每个元素 i,检查它是否存在于 setNum1 中
if(setNum1.has(i)){
// 如果存在,说明 i 是 nums1 和 nums2 的共同元素
// 将其添加到 setRes 中,作为交集结果的一部分
setRes.add(i);
}
}
// 使用 Array.from 方法将 setRes 转换为数组并返回
return Array.from(setRes);
};
欢迎指正!