题目:给定你任意一个字符串,让你写出一个算法,求算出该字符串中出现次数最多的一个字符,并将其结果输出。
解析:这是其中一种比较简单的写法,希望大家记住它。
//判断一个随意字符串中出现次数最多的字母,并判断出出现过几次 var str = "saidhsd,pmgmtpmrpashdoasdnassdsjaoiosdnasndasnd"; var join = {};//定义一个对象 for (var i = 0; i < str.length; i++) { //判断该字符串截取出来的这一个字符是不是在join对象中存在{“a”,1}之后有a的话就进行++数量 if (!join[str.charAt(i)]) { //如果不存在,则以该单字符作为join对象的键值,将其values赋值为1 join[str.charAt(i)] = 1; } else { //如果存在,则找到该键值对应的value值 将其自增 join[str.charAt(i)]++; } } var max = 0;//定义一个最大值,用于保存出现次数最多的字符的次数 var maxStr = "";//用于保存出现次数最多的那个字符 //打擂算法循环输出join中保存的数据 for(var item in join){ //每一个item都代表着一个join对象的键值(也就是字符) if(join[item]>max){ max = join[item]; maxStr = item; } } alert(maxStr+"字符出现的次数为:"+max);