假设有一个字符串,下面让我们一起来查找出现次数最多的字符
var str = 'asdfssaaaseraaasdfdsasasasaa';首先,我们定义一个Object用来存放拆分的字符串,然后遍历字符串。 判断obj里面是否出现某一个字符,如果未出现则给obj添加以此字符为键值的属性,并赋值为1。反之则给此属性值++;
var obj = {}; for (var i = 0; i < str.length; i++) { if (!obj[str.charAt(i)]) { obj[str.charAt(i)] = 1; // obj[str.charAt(i)]这种中括号写法 和obj.str.charAt(i)是一个意思 但是这样写会报错 所以写成中括号的形式 } else { obj[str.charAt(i)]++ } }此时我们已经拿到了一个这样的对象
obj{ a: 12 d: 3 e: 1 f: 2 r: 1 s: 9}之后再用for-in循环
var max = 0, name = ""; for (var i in obj) { if (obj[i] > max) { max = obj[i]; name = i; } } console.log('出现次数最多的是:' + name + '出现了' + max + '次'); //出现次数最多的是:a出现了12次