统计"JavaScript"中出现次数最多的字母,共出现多少次?
首先我们需要分析,本题要的结果是什么:①出现最多的字符②出现最多的字符出现了几次
函数的书写流程:
第一步:遍历字符串,得到每个字符
第二步:通过对象属性,计算每个字符出现的次数
第三步:遍历对象,得到出现次数最大数字对应的字符。
上代码:
<script>
//JavaScript 出现最多的字符数哪一个,有多少次
var str="javascript"
//如何统计每个字符出现的次数
//{j:1,a:2;v:1,...}
//准备一个空对象,用于保存每一个字符出现的字数
var obj={}
//声明变量,保存最大次数
var max=1
//遍历字符串,得到每个字符
for(var i=0;i<str.length;i++){
//console.log(str[i])
var char=str[i] //得到的每个字符
//判断对象中是否含有这个字符属性
//如果没有出现,则添加该属性,并赋值为1
//否则已经存在,让属性值加1
if(obj[char]===undefined){
obj[char]=1
}else{
//否则已存在,属性值+1
obj[char]++
//每次加1,判断是否超过了最大次数
if(obj[char]>max){
max=obj[char]
}
}
}
console.log(obj)
console.log(max)
//遍历对象,查找max对应的字符有哪些
for(var k in obj){
//k代表属性名,也就是每个字符
//obj[k]属性值,也就是字符串的次数
//console.log(k,obj[k])
if(obj[k]===max){
console.log(k)
}
}
</script>
本题属于一个中等题目,但只要掌握了遍历字符串和遍历数组,以及对象和属性相应的知识,就会非常清晰。这里,再追加一点关于对象和数字的相关概念~
1、数组
定义 |
数组就是一组数据的集合—后期操作数据方便,每个数据叫做元素 |
创建数组 |
数组字面量[元素1,元素2...] |