首页 > 代码库 > 获取在一个数组中出现最多的字符及其所在的位置

获取在一个数组中出现最多的字符及其所在的位置

获取在一个数组中出现最多的字符、个数及其所在的位置

<!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>

  

获取在一个数组中出现最多的字符及其所在的位置