力扣题目:给定两个数组,编写一个函数来计算它们的交集。
说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。
思路:把长度最长的那个数组nums1转换为set,这样这个数组就没有重复元素了。遍历nums2,判断set中是否存在该数组中的数字,如果存在则返回共有数字
var jiao = function (nums1, nums2) {
if (nums1.length < nums2.length) {
//交换数组,为了保证所有情况下nums1数组都是长度最大的
const nums3 = nums1;
var nums1 = nums2;
var nums2 = nums3;
}
var set1 = new Set(nums1);
var newSet = new Set();
for (let i = 0; i < nums2.length; i++) {
if (set1.has(nums2[i])) {
newSet.add(nums2[i]);
}
}
return Array.from(newSet);
}
var nums1 = [1, 2, 3, 4, 2];
var nums2 = [2, 3, 7, 8, 4];
var nums = jiao(nums1, nums2);
console.log(nums)