原生js字符出现最多

原生js字符出现最多

给大家分享一个原生js判断字符中,出现最多的元素,可以兼用同时有几个元素最大值的写法,用原型链扩展,只要引入,任何时候都可以对String类型进行引用


String.prototype.mostCharAt = function(){
	var obj = {},num = 0,res = {};//obj记录各个字符出现的次数,num记录次数最大值,res记录最大次数的对象
	for(var i=0,j = this.length;i < j;i++){//历遍字符串
		var str = this.charAt(i);//用charAt获取字符
		obj[str] == undefined ? obj[str] = 1 : obj[str]++;//初始化obj字符数值或者自+1
		obj[str] > num ? num = obj[str] : '';//判断并记录最大值
	}
	for(var key in obj){
		if(obj[key] == num) res[key] = obj[key];//根据最大值记录对象
	}
	return res;
}
console.log('sssbbbcfgg'.mostCharAt());//结果为{'s':3,'b':3}
console.log('sssbbcfgg'.mostCharAt());//结果为{'s':3}

var strObj = 'sssbbbcfgg'.mostCharAt()
for(var key in strObj){
	console.log(key+':'+strObj[key])
}
//输出 s:3
//输出 b:3

希望大家喜欢我这个分享

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值