1寻找一个数组中最多的那个数
(1)利用数组
1 function findMostNum(arr){ 2 var temp1=[];//存放去重的数字 3 var temp2=[];//存放各个数字的个数 4 var indexNum=arr[0];//存放最先开始的位置 5 var indexFirst=0;//存放数字第一次出现的位置 6 //sort方法要写参数例如[1,10,2]就会出错 7 arr.sort(function(a,b){//数组先排序 8 return a-b; 9 }); 10 for(var i=0;i<arr.length;i++){ 11 if(arr[i]!==arr[i+1]){ 12 temp1.push(arr[i]); 13 temp2.push(i-indexFirst+1); 14 indexFirst=i+1; 15 } 16 } 17 var max=0; 18 for(var j=0;j<temp2.length;j++){ 19 if(temp2[j]>max){ 20 max=temp2[j]; 21 } 22 } 23 var mostNum=[]; 24 for(var k=0;k<temp2.length;k++){ 25 if(temp2[k]===max){ 26 mostNum.push(temp1[k]); 27 } 28 } 29 return {number:mostNum,count:max}; 30 } 31 var arr=[1,10,2,2,2,2,2,4,5,6,7,8,9,3,3,3,3,3]; 32 var obj=findMostNum(arr); 33 console.log(‘数字字数最多的是‘+obj.number+‘;这个(些)数字的个数是‘+obj.count);
(2)利用json和数组
1 function findMostNum(arr){ 2 var json={}; 3 var newArr=[]; 4 var mostArr=[]; 5 for(var i=0;i<arr.length;i++){ 6 if(json[arr[i]]){ 7 json[arr[i]]++; 8 }else{ 9 json[arr[i]]=1; 10 } 11 newArr.push(json[arr[i]]); 12 } 13 newArr.sort(function(a,b){ 14 return b-a; 15 }); 16 for(var j in json){ 17 if(json[j]==newArr[0]){ 18 mostArr.push(j); 19 } 20 } 21 return {number:mostArr,count:newArr[0]}; 22 } 23 var arr=[1,10,2,2,2,2,2,4,5,6,7,8,9,3,3,3,3,3]; 24 var obj=findMostNum(arr); 25 console.log(‘数字字数最多的是‘+obj.number+‘;这个(些)数字的个数是‘+obj.count);
时间: 2024-11-14 13:40:19