码迷,mamicode.com
首页 > 编程语言 > 详细

js算法(2)

时间:2016-07-30 13:34:40      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

js算法(2)

标签:

原文地址:http://www.cnblogs.com/lcddjm/p/5720634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!