字符串字符统计——js练习
題目要求
完善函數(shù)count的功能
函數(shù)count會(huì)統(tǒng)計(jì)傳入的字符串其每個(gè)字符的的個(gè)數(shù),并返回一個(gè)結(jié)果對(duì)象(Object)。
屬性名稱(key)為統(tǒng)計(jì)字符(區(qū)分大小寫,即 a 不等于 A),屬性值(value)為統(tǒng)計(jì)字符的個(gè)數(shù)。
如count('javaScript')會(huì)返回一個(gè)統(tǒng)計(jì)結(jié)果對(duì)象,該對(duì)象表示javaScript的字符統(tǒng)計(jì)結(jié)果。
count('javaScript'); // 返回結(jié)果為 {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;
}
指導(dǎo)方法如下
思路:
創(chuàng)建一個(gè)統(tǒng)計(jì)對(duì)象,記錄統(tǒng)計(jì)結(jié)果
使用循環(huán)語句遍歷字符串的每個(gè)字符
對(duì)于每個(gè)字符,需要依次判斷是否已經(jīng)出現(xiàn)在統(tǒng)計(jì)對(duì)象中,即統(tǒng)計(jì)對(duì)象是否還有該屬性
/**
* 函數(shù) `count` 會(huì)統(tǒng)計(jì)傳入的字符串參數(shù)其每個(gè)字符的的個(gè)數(shù)
* @param {String} str 需要統(tǒng)計(jì)的字符串
*/
function count(str) {
var resultObj = {}; // 統(tǒng)計(jì)對(duì)象
var i = 0;
var strLen = str.length;
for (; i < strLen; i++){
var curChar = str.charAt(i);
// 如果結(jié)果對(duì)象存在該字符的屬性,則自增,否則置為1
if (resultObj[curChar]) {
resultObj[curChar]++;
} else {
resultObj[curChar] = 1;
}
}
// 返回結(jié)果
return resultObj;
}
這里使用了charAt方法來獲取字符串指定位置的字符
var str = 'abcd'; // 使用 charAt 方法 str.charAt(1); // 返回 b // 另外也可以通過使用方括號(hào)來獲取字符串的字符 str[2]; // c
定義和用法
charAt() 方法可返回指定位置的字符。
請(qǐng)注意,JavaScript 并沒有一種有別于字符串類型的字符數(shù)據(jù)類型,所以返回的字符是長(zhǎng)度為 1 的字符
提示和注釋
注釋:字符串中第一個(gè)字符的下標(biāo)是 0。如果參數(shù) index 不在 0 與 string.length 之間,該方法將返回一個(gè)空字符串
關(guān)于charAt方法的更多解釋:http://www.w3school.com.cn/jsref/jsref_charAt.asp
總結(jié)
以上是生活随笔為你收集整理的字符串字符统计——js练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京元洲装饰怎么样(北京东易日盛装饰公司
- 下一篇: whoosh使用笔记