var a = 'xiaomingxiaowangzhangshanlisi';
var d = {};
for (var i = 0; i < a.length; i++){
if (d[a[i]] == undefined) d[a[i]] = 0;
d[a[i]]++;
}
var max = 0;
var char = "";
for (var key in d) {
if (d[key] > max) {
max = d[key];
char = key;
}
}
console.log(char, max);
原理都差不多,这个要少遍历一次
抖个机灵:
如果要一行代码的话,必须二次排序,或者用他们那个循环的版本。
只用最大我就不排序了。。
来一个一行版
当然效率不如上面各位
我也回答一个,需要ES6。
我喜欢用
reduce,所以: