今天浏览网页的时候看到这个题也是一道很经典的题目了
var str ='aaaaaaajsdjdfkdkg';
var arry=[,];
var obj={};
for(var i=;i<str.length;i++){
if(!obj[str.charAt(i)]){
obj[str.charAt(i)]=;
}else{
obj[str.charAt(i)]++;
}
}
var numbers=;
var stra='';
for(var a in obj){
if(obj[a]>numbers){
numbers = obj[a];
stra = a;
}
}
alert(stra+'出现'+numbers+'次,出现次数最多');
然后我就想把obj直接输出来,而要把他输出来就的把obj对象转换为一个字符,想了一会没有想到办法,于是网上查了一下,
看到某位大神的方法
var objstr = '{';
for(var b in obj){
objstr +="'"+b+"'':''"+obj[b]+"',";
}
objstr+='}';
alert(objstr);
没错就是这样简单粗暴,但是有合情合理,但是突然我又想到obj[key],能不能输出他的val,(我们知道obj.a是肯定可以输出他的值的因为这是一个对象)所以我果断
alert(obj[a])
然而没有软用直接undefined,到这里我就不明白了上面 obj[str.charAt(i)]都可以用为毛直接写入a就不能输出值呢?不知道你们不知道不知道原因,后来我想了一下。。。。。。傻逼了,所以果断改为
alert(obj['a'])
输出结果7。。。。。,a不是key,key的整个是'a'