★js统计一个字符串出现最多的字母(或者数组中出现次数最多的元素)

//字符串
var strs = "asdasdadd";
        function getmaxstr(str){
            if(str.length == 1){return str;}
            var newarr = [];
            for(var i = 0 ; ss= str.length, i<ss; i++ ){
                if(!newarr[str.charAt(i)]){
                    newarr[str.charAt(i)] = 1;
                }else{
                    newarr[str.charAt(i)] +=1;
                }
            }
            console.log(newarr);
            var maxkey='';
            var maxvalue=1;//设定一个值
            for(var k in newarr){
                if(newarr[k]> maxvalue){//根据这个值做判读 将数组中的每个元素 与这个值做比较! 如果大于他,那么将住宿
                    maxvalue = newarr[k];//出现的次数
                    maxkey = k;//次数最多的 字母
                }
            }
            console.log(maxkey);
            return maxvalue;
        }
        getmaxstr(strs);

//数组

var arr =["a","b","c","c","c","d"];
    Array.prototype.diaohuan=function(arr){
        var newarr=[];
        for(var i = 0; i<this.length; i++){
            if(!newarr[this[i]] ){
                newarr[this[i]] = 1;
            }else{
                newarr[this[i]] +=1;
            }
        }
        console.log(newarr);
        var maxkey = 1;
        var maxvalue ="";
        for (var k in newarr){
            if(newarr[k] > 1){
                maxvalue =newarr[k];
                maxkey = k;
            }    
        }
        return maxvalue;
        console.log(maxvalue);
    }
      alert(arr.diaohuan());

 

函数的结构差不多,实际都是对数组的处理

一个主要的思路:新建一个空的数组newarr!将要处理的数组(字符串转成数组)的元素做为键 存入新数组,
根据键的唯一做判断,如果新数组newarr中没有这个键,那么就存入,并给 值 为1,
                            如果新数组newarr中  有 这个键了,那么将该 键 对应的值 +1;。

然后 :对新数组newarr 取最大值!并获取当前的索引,即可得到!!

用到的知识点:
1、charAt()函数:返回指定位置 长度为 1  的字符, 

stringObject.charAt(index) index必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串;

例如:

var str="Hello world!"
document.write(str.charAt(1))  输出 e


2、 for in 循环

用 for-in 来遍历一遍数组的内容 例如:

const arr = [1, 2, 3];
let index;
for(index in arr) {
    console.log("arr[" + index + "] = " + arr[index]);
}

//结果
arr[0] = 1
arr[1] = 2
arr[2] = 3

还可以遍历对象 例如

const person = {
    fname: "san",
    lname: "zhang",
    age: 99
};
let info;
for(info in person) {
    console.log("person[" + info + "] = " + person[info]);
}
//结果
person[fname] = san
person[lname] = zhang
person[age] = 99

 

转载于:https://www.cnblogs.com/lovelgx/articles/6186010.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值