给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
输入:nums = [2,2,3,2] 输出:3
输入:nums = [0,1,0,1,0,1,99] 输出:99
1 var singleNumber = function(nums) { 2 const map = new Map(); 3 for(const num of nums){ 4 //map.set(数值,出现次数) map.get(num)初始都是Undefine,取0,第一次出现+1,第二次出现取原来的1再+1,如第一次出现1:set(1,1),第二次出现1:set(1,1+1) 5 map.set(num,( map.get(num) || 0 ) + 1); 6 } 7 let a = 0; 8 //将原来的格式:map[[1,3][0,3][99,1]]拆解为map[1,3][0,3][99,1],即返回新的迭代对象 9 for(const [num,ooc] of map.entries()){ 10 if (ooc===1){ 11 a = num; 12 } 13 } 14 return a; 15 };
原文:https://www.cnblogs.com/yesimola/p/14723296.html