获取在一个数组中出现最多的字符、个数及其所在的位置
<!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>