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


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

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

      

  • 相关阅读:
    面向对象、构造函数的区别
    写一个function,清除字符串前后的空格。(兼容所有浏览器)
    两个DIV高度自适应方法(左右两个DIV高度一样)
    js数组去重
    input框处理删除小图标的功能
    查找显示高亮
    JSON.parse()和JSON.stringify()
    jquery封装
    怎么理解HTML语义化
    html5语义化标签
  • 原文地址:https://www.cnblogs.com/karila/p/7103691.html
Copyright © 2020-2023  润新知