今天浏览网页的时候看到这个题也是一道很经典的题目了
var str ='aaaaaaajsdjdfkdkg'; var arry=[1,2]; var obj={}; for(var i=0;i<str.length;i++){ if(!obj[str.charAt(i)]){ obj[str.charAt(i)]=1; }else{ obj[str.charAt(i)]++; } } var numbers=0; 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'