步骤:
1、随机100个字符组成字符串
2、统计每个字符的个数
一、普通for循环来统计个数
1、随机100个字符组成字符串
Math.random()产生[0,1)之间的小数
Math.random()*26+97就产生了[97,123)的小数
parseInt()可以将小数向下取整,也可以将数字组成的字符串转为整数
String.fromCharCode()可以将数字转为unicode对应的字符编码
var str="";
for(let i=0;i<100;i++){
var chr=String.fromCharCode(parseInt(Math.random()*26+97));
str+=chr;
}
2、统计每个字符个数
2.1 遍历字符串判断是什么字符
字符串.charCodeAt(n)是将字符串中索引下标为n的字符的ASCII值返回
起始字符个数设为0,以’a’为例,每当字符串中找到一个’a’字符,num就加1
var num=0;//字符个数
for(let n=0;n<str.length;n++){
if(str.charCodeAt(n)=="a"){
num++;
}
}
2.2 循环97-123,转成字符
for(let m=97;m<123;m++){
var s=String.fromCharCode(m);
}
完整代码
<script type="text/javascript">
var str="";
for(let i=0;i<100;i++){
var chr=String.fromCharCode(parseInt(Math.random()*26+97));
str+=chr;
}
for(let m=97;m<123;m++){
var num=0;
for(let n=0;n<str.length;n++){
if(str.charCodeAt(n)==m){
num++;
}
}
var s=String.fromCharCode(m);
document.write(s+"个数"+num+"<br />");
}
</script>
结果如下
二、使用对象来统计
对象有chars属性,值就加1,没有就复制为1
代码如下
var str="";
for(let i=0;i<100;i++){
var chr=String.fromCharCode(parseInt(Math.random()*26+97));
str+=chr;
}
var o={};
for(var i=0;i<str.length;i++){
var chars=str.charAt(i);
if(o[chars]){
o[chars]++;
}else{
o[chars]=1;
}
}
console.log(o);//控制台输出
若不想控制台输出,想输出在网页上,可以遍历对象
for(var k in o){
document.write(k+"的个数"+o[k]+"<br />");
}