題目要求
完善函數 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