zoukankan      html  css  js  c++  java
  • 获取在一个数组中出现最多的字符及其所在的位置

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

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

      

  • 相关阅读:
    使用git笔记
    linux 进程管理的一些命令使用
    [zz]XML DOM 教程
    [zz]std::string 和 c 的字符串
    [zz]grep 命令的使用
    [zz]XercesC++ 参考
    [zz]Windows WordPress本地安装教程
    今天调出来的关于cello的bug
    shell 编程的一些问题
    关于java中边界值校验的问题
  • 原文地址:https://www.cnblogs.com/karila/p/7103691.html
Copyright © 2011-2022 走看看