charAt() 方法可返回指定位置的字符

执行以下程序,输出结果为()

var str = 'acdaecad'; var obj = {}; for (var i = 0;i<str.length;i++){ if (obj[str.charAt(i)]){ obj[str.charAt(i)]++; } else { obj[str.charAt(i)] = 1; } } var val1; var val2 = 0; for (var k in obj) { if (obj[k] > val2){ val2 = obj[k]; val1 = k; } } console.log(val1);

A
a

B
3

C
e

D
1

正确答案:A

程序一开始先把字符串str的单个字符作为对象obj的属性,属性值为单个字符在字符串str中的个数,即obj = {a: 3, c: 2, d: 2, e: 1},
然后开始遍历对象obj,找出对象obj属性值最大的属性名,
因此最终val1结果为属性a,val2为该属性对应的属性值3,该程序的执行效果即为找出字符串str中同一元素出现个数最多的字符以及对应的个数。

var str = 'acdaecad'; var obj = {}; for (var i = 0;i<str.length;i++){ if (obj[str.charAt(i)]){ //判断是obj里是否有str里面某个字母的属性 obj[str.charAt(i)]++;//如果有,给那个属性++ } else { obj[str.charAt(i)] = 1; //如果没有,给obj添加那个属性 } } var val1; var val2 = 0; for (var k in obj) { //for in 循环遍历对象,k是键(也就是对象的属性名) obj就是原对象 if (obj[k] > val2){ 如果obj的属性值大于val2 里面a出现的最多。++次数最多,也就是3 val2 = obj[k]; //val2等于obj的属性值 val1 = k; //最后将属性名赋予 } } console.log(val1); // 所以最后输出a

输出字符串中出现最多的字符


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17835162.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示