#特辑# 统计字符串中出现次数最多的字符是哪个,并且出现了出现了几次 。

方式一

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>
			1.统计字符串中出现次数最多的字符是哪个,出现了几次
			 示例字符串: str="abcdeereeryhhssqqq"
		</title>
	</head>
	<body>
		<script>
        var str = 'abcdeereeryhhssqqq';
			function countStr(str) {
				var obj = {};
				//遍历字符串  获取每一个字符
				for (var i = 0; i < str.length; i++) {
					//  str[i]  相当于一个变量    obj[str[i]]  取值    
					if (obj[str[i]]) {
						obj[str[i]]++;
					} else {
                       //obj.a = 1
						obj[str[i]] = 1;
					}
				}
				var k;
				var max = -1;
				//遍历对象    属性  for
				for (var key in obj) {
					if (max < obj[key]) {
						max = obj[key];
						k = key;
					}
				}
				return k + ':' + max;
			}
			var s = countStr(str);
			console.log(s);
		</script>
	</body>
</html>

方法二

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>
			1.统计字符串中出现次数最多的字符是哪个,出现了几次
			str="abcdeereeryhhssqqq"
		</title>
	</head>
	<body>
		<script>
			//方法一
			// 给定的字符串
			 const str = 'abcdeereeryhhssqqq';
			// 统计字符串中出现次数最多的字符,出现多少次
			 function statistics(str) {
			// 声明一个变量
			 const obj = {};
			// 存放出现次数最多的字符
			 let maxStr = '';
			// 存放出现的次数
			 let max = 0;
			// 遍历字符串,统计每个字符出现的次数
			 for (const key of str) {
			// 判断对象中是否有这个属性
			 if (obj.hasOwnProperty(key)) {
			// 如果有这个属性名,就让这个属性的值++
			 	obj[key]++;
			 } else {
			// 如果没有这个属性,就给这个属性赋值为1
					obj[key] = 1;
			 	}
			 }
			// 遍历对象,找出出现最多的字符
			 for (const key in obj) {
			// 如果当前属性的值大于 max ,则更新 max
			 if (obj[key] > max) {
			// 更新出现次数最多的字符的名字
			 maxStr = key;
			// 更新出现次数
			 		max = obj[key];
			 	}
			 }
			// 返回出现次数最多的字符,还有次数
			 	return { maxStr, max };
			}
			 const obj = statistics(str);
			 console.log(
				`字符串中出现次数最多的字符是 ${obj.maxStr} ,出现了 ${obj.max} 次`
			);
</script>
	</body>
</html>

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值