力扣https://leetcode.cn/problems/intersection-of-two-arrays/给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
tips:
1、Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组
2、Set()作用:Set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等
题目分析:
(1)利用哈希函数的Set()对数组进行去重
(2)循环比较nums1中是否含有nums2的元素,若存在,则将其添加到新数组中
实现代码:
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersection = function(nums1, nums2) {
const nums1Set = new Set(nums1);
const resSet = new Set();
for(let i = nums2.length-1;i>=0;i--){
if(nums1Set.has(nums2[i])){
resSet.add(nums2[i])
}
}
return Array.from(resSet);
};