题目要求
完善函数 count
的功能
- 函数
count
会统计传入的字符串其每个字符的的个数,并返回一个结果对象(Object)。 - 属性名称(key)为统计字符(区分大小写,即 a 不等于 A),属性值(value)为统计字符的个数。
如 count(‘javascript‘)
会返回一个统计结果对象,该对象表示 javaScript 的字符统计结果。
count(‘javaScript‘); // 返回结果为 {j: 1, a: 2, v: 1, S: 1, c: 1, r: 1, i: 1, p: 1, t: 1}
function count(string){ var strObj = {}; var strLen = string.length; for (var i=0; i<strLen; i++){ var key = string[i]; if(strObj[key]){ strObj[key]++; } else{ strObj[key]=1; } } return strObj; }
指导方法如下
思路:
- 创建一个统计对象,记录统计结果
- 使用循环语句遍历字符串的每个字符
- 对于每个字符,需要依次判断是否已经出现在统计对象中,即统计对象是否还有该属性
/** * 函数 `count` 会统计传入的字符串参数其每个字符的的个数 * @param {String} str 需要统计的字符串 */ function count(str) { var resultObj = {}; // 统计对象 var i = 0; var strLen = str.length; for (; i < strLen; i++){ var curChar = str.charAt(i); // 如果结果对象存在该字符的属性,则自增,否则置为1 if (resultObj[curChar]) { resultObj[curChar]++; } else { resultObj[curChar] = 1; } } // 返回结果 return resultObj; }
这里使用了 charAt
方法来获取字符串指定位置的字符
var str = ‘abcd‘; // 使用 charAt 方法 str.charAt(1); // 返回 b // 另外也可以通过使用方括号来获取字符串的字符 str[2]; // c
定义和用法
charAt() 方法可返回指定位置的字符。
请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符
提示和注释
注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串
关于charAt方法的更多解释:http://www.w3school.com.cn/jsref/jsref_charAt.asp