1、统计一个字符串中字符出现的次数。 2、获得次数最多的一个,共出现几次。 3、用字典的方式。
function statistics(string) { // 利用正则去除所有空格 string = string.replace(/\s+/g, ''); // 定义字面量对象 var dictionaries = {}; for (var i = 0; i < string.length; i++) { // 如果 dictionaries // 对象中不包含当前字母为属性名的成员 if (dictionaries[string[i]] === undefined) { // 强行添加一个以当前字母为属性名的成员, // 初始值为 1 dictionaries[string[i]] = 1; } else { // 否则字典中已有这个字母为属性名的成员, // 就为当前属性名的值 += 1 dictionaries[string[i]] += 1; } } var max = null, count = 0; // 遍历对象中每个属性 for (var key in dictionaries) { // 用当前属性值和 count 比较 // 如果当前属性值大于 count 时, // 才取而代之,并将当前字符(属性),保存在 max 中 if (dictionaries[key] > count) { max = key; count = dictionaries[key]; } } return { dictionaries, max, count }; }; console.log(statistics('I miss you')); // {dictionaries: {…}, max: "s", count: 2} // dictionaries: { I: 1, i: 1, m: 1, o: 1, s: 2, u: 1, y: 1 } // max: "s" // count: 2