思路:
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;
};