判断一个字符串中出现次数最多的字符,统计这个次数
方法一
将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数:
var str = "adgfdgfbcdefgaddda";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
var key = str[i];
if (!obj[key]) {
obj[key] = 1;
} else {
obj[key]++;
}
}
/* 遍历这个hash table,获取value最大的key和value */
var max = -1;
var max_key = "";
var key;
for (key in obj) {
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
console.log("max:" + max + " max_key:" + max_key);
方法二
var aa = '121321';
var str = aa.split(''); // 将字符串转换为字符数组
var m = {}, k = 0; // k记录重复次数
for (var i = 0; i < str.length; i++) {
for (var j = 0; j < str.length; j++) {
if (str[i] == str[j])
k++;
}
var x = str[i];
m[x] = k;
k = 0;
};
console.log(m) // Object {1: 3, 2: 2, 3: 1}
JS有那些数据类型
JavaScript中包含6种数据类型:undefined
、null
、string
、number
、boolean
和 object
。其中,前5种是原始数据类型,object
是对象类型。object
类型中包括 Object
、Function
、String
、Number
、Boolean
、Array
、Regexp
、Date
、Globel
、Math
、Error
,以及宿主环境提供的 object
类型。
下面结果是什么?
var str1 = new String('abc');
var str2 = 'abc';
请问 str1 === str2
吗?
答案是:false
。typeof str1
类型是 object
,typeof str2
类型是 string
。
评论区