| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 
 | 
 
 
 
 var intersect = function(nums1, nums2) {
 const [map1, map2, result] = [new Map(), new Map(), []];
 
 for (const v of nums1) {
 map1.get(v)
 ? map1.set(v, map1.get(v) + 1)
 : map1.set(v, 1);
 }
 for (const v of nums2) {
 map2.get(v)
 ? map2.set(v, map2.get(v) + 1)
 : map2.set(v, 1);
 }
 
 for (const [key, value] of map1) {
 const count = Math.min(value, map2.get(key) || 0);
 
 for (let i = 0; i < count; i++) {
 result.push(key);
 }
 }
 
 return result;
 };
 
 |