前言
利用字符串中的方法
charAt()
,返回指定下标位置的字符
字符串
// 1.统计次数
var str = 'XMLHttpRequest';
// 创建了一个空的对象,存储字符串中的每个字符。属性:每个字符,属性值:该字符出现的次数
var obj = {};
for (var i = 0; i < str.length; i++) {// 遍历字符串
var chars = str.charAt(i);// chars代表字符串的每一个字符
// obj[chars]属性值:该字符出现的次数
// 如果已经存在,那么次数+1;否则赋值为1
if (obj[chars]) {
obj[chars]++;
} else {
obj[chars] = 1;
}
}
console.log(obj);// 输出对象obj,显示每个字符出现的次数
// 2.遍历对象,找出最大的次数
var max = 0;
var ch = '';
for (var k in obj) {
if (obj[k] > max) {// k代表属性:每个字符
max = obj[k];// obj[k]代表属性值:该字符出现的次数
ch = k; // 将次数最多的字符赋值到ch
}
}
console.log('最多的字符是' + ch + ',次数为' + max);
数组
利用的方法同上,不过要将
数组转换为字符串
//数组中出现次数最多的字符
var arr1 = [1, 'a', 1, 3, 4, 1, 'a', 'a', 'a', 'a', 'a', 1, 5, 6, 'q', 'e']
var arr = arr1.join('')//将数组转化为字符串
var json = {}; //定义对象
for (var i = 0; i < arr.length; i++) {
if (!json[arr.charAt(i)]) {//判断对象中是否拥有此字符
json[arr.charAt(i)] = 1; //没有添加进去,并给属性值为1
} else {
json[arr.charAt(i)]++; //有数量加一
}
};
var iMax = 0;
var iIndex = '';
for (var i in json) { //循环对象
//判断出现次数是否大于iMax,并将最大值赋值给iMax
if (json[i] > iMax) {
iMax = json[i];
iIndex = i;
}
}
console.log('出现次数最多的是:' + iIndex + '出现' + iMax + '次');