1. 程式人生 > >獲取在一個數組中出現最多的字符及其所在的位置

獲取在一個數組中出現最多的字符及其所在的位置

blog 數組 body asc i++ cnblogs attr 次數 獲取

獲取在一個數組中出現最多的字符、個數及其所在的位置

<!DOCTYPE html>
<html>
<head>
	<title>一個數組中,出現次數最多的字符,及其位置</title>
</head>
<body>
     <script type="text/javascript">
     	var arr=["a","x","b","d","m","a","k","m","p","j","a"];
     	var str="what are you";  

     	//找出出現次數最多的字符。及其次數
     	function unique(str){
     		var obj={}; //存儲出現的次數
     		var objIndex=[];
     		for(var i=0;i<str.length;i++){
     			var key=str[i];
     			if(obj[key]){ //判斷這個鍵值對中有沒有這個值
                   obj[key]++;           
     			}else{
     				obj[key]=1;
     			}
     		}

     		//找出出現最多的次數的字符
     		var maxCount=0;
     		var maxString="";
     		for(var key in obj){
               if(maxCount<obj[key]){
                  maxCount=obj[key];
                  maxString=key;
               }
     		}
     		return "該字符"+maxString+"出現了"+maxCount+"次;";
     	}
     	unique(str);
     	console.log(unique(arr));  

     	//找出出現次數最多的字符,及其位置
     	function getMaxAndIndex(arr){
			//var arr=str.split(‘‘)
			//console.log(arr)
	        var obj = {};
	        arr.forEach(function(item,index){
	            if(!obj[item]){
	                obj[item]= {indexs: [index]}
	            }else{
	                obj[item][‘indexs‘].push(index);
	            }
	        });
	        var num=0;//記錄出現次數最大值
	        var str1=‘‘;//記錄出現次數最多的字符
	        var reArr;//返回最大值的位置數組
	        for(var attr in obj){
	            var temp=obj[attr][‘indexs‘];
	            if(temp.length>num){
	                num=temp.length;
	                str1=attr;
	                reArr=temp;
	            }
	        }
	        return {
	            maxStr:str1,
	            indexs:reArr
	        }
	    }	
     	var result=getMaxAndIndex(arr);
     	console.log(result);
     </script>
</body>
</html>

  

獲取在一個數組中出現最多的字符及其所在的位置