一个字符串或数组,如何找到出现次数最多的字符或者项?
先构造个biggest函数
function biggest(str) { document.write(str+'中'); var obj={}; for(var i=0;i<str.length;i++) { var key=str[i]; if(!obj[key]) { obj[key]=1; } else { obj[key]++; } } var maxnum=-1; var maxkey=""; var key; for(key in obj) { if(maxnum<=obj[key]) { if(obj[key]==maxnum) { maxkey+=","+key; } else { maxkey=key; } maxnum=obj[key]; } } document.write("出现最多的是"+maxkey+"一共出现"+maxnum+"次<br>"); }
其中也要考虑到有可能两个字符出现的次数相通,所以要进行下判断,相同的话就要将maxkey补上它。
调用biggest()方法
var str1 = "WeAreNeverEverGettingBackTogether"; var str2 = "AABBCCDD"; var str3 = ['张三','张三','张三','李四','王五','王五']; biggest(str1); biggest(str2); biggest(str3);
输出的结果:
WeAreNeverEverGettingBackTogether中出现最多的是e一共出现8次
AABBCCDD中出现最多的是A,B,C,D一共出现2次
张三,张三,张三,李四,王五,王五中出现最多的是张三一共出现3次