思路:
1.使用一个map数组来保存nums1中出现的元素及其次数.
2.遍历nums2.使用map的has方法来检测nums2中的元素是否出现在map中,若出现则加入返回数组(retArr),且map数组中的次数减1
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersect = function(nums1, nums2) {
const retArr = [];
const map = new Map();
nums1.forEach((item)=>{
if(map.has(item)){
map.set(item,map.get(item)+1)
}else{
map.set(item,1)
}
})
nums2.forEach((item)=>{
if(map.has(item) && map.get(item) > 0){
retArr.push(item);
map.set(item,map.get(item)-1);
}
})
return retArr;
};