要求:
輸出一個給定字符串abdgdbcaethbganmugthaesqszaphfdvwd
中出現次數最多的字符,並統計其次數。
實現思路:
- 利用
charA()
遍歷這個字符串 - 把每個字符都存儲給對象,如果對象沒有該屬性,就先幅值為1,如果存在了就+1
- 遍歷對象,得到最大值和該字符
- 在遍歷的過程中,把字符串中的每個字符作為對象的屬性存儲在對象中,對應的屬性值是該字符出現的次數
代碼實現:
// 1.統計次數
var str = 'abdgdbcaethbganmugthaesqszaphfdvwd';
var obj = {};
// 創建了一個空的對象,存儲字符串中的每個字符。屬性:每個字符,屬性值:該字符出現的次數
for (var i = 0; i < str.length; i++) {
// 遍歷字符串
var chars = str.charAt(i);
// chars代表字符串的每一個字符
if (obj[chars]) {
obj[chars]++;
} else {
obj[chars] = 1;
}
// obj[chars]屬性值:該字符出現的次數
// 如果已經存在,那么次數+1;否則賦值為1
}
console.log(obj);
// 輸出對象obj,顯示每個字符出現的次數
// 2.遍歷對象,找出最大的次數
var max = 0;
var ch = '';
for (var k in obj) {
if (obj[k] > max) {
max = obj[k];
ch = k;
}
}
// k代表屬性:每個字符
// obj[k]代表屬性值:該字符出現的次數
// 將次數最多的字符賦值到ch
console.log('最多的字符是' + ch + ',次數為' + max);
輸出結果:
{a: 5, b: 3, d: 4, g: 3, c: 1, …}
最多的字符是a,次數為5