判断一个字符串中出现次数最多的字符
2019-12-26 本文已影响0人
啵崽崽
字符串
let str = 'aabbccddd'
let obj = {}
for (let i = 0; i < str.length; i++) {
// 判断字符串不存在时赋值为1 存在就加1 charAt获取字符串的索引
if (!obj[str.charAt(i)]) {
obj[str.charAt(i)] = 1
} else {
obj[str.charAt(i)]++
}
}
console.log(obj, 'obj') // {a: 2, b: 2, c: 2, d: 3} "obj"
let max = 0
let value = ''
for (let key in obj) {
console.log('key', key) // key a b c d
console.log('obj', obj) // obj {a: 2, b: 2, c: 2, d: 3}
console.log('obj111', obj[key]) // value值:2 2 2 3
// 假设一个为0的值 和 一个空的字符串来存放键
// for in 遍历obj对象 把每一个值和max对比
// 然后获取最大的值max 和 最大值对应的键value
if (obj[key] > max) {
max = obj[key]
value = key
}
}
console.log(value+ '元素' + '' + max + '次数') // d元素3次数
数组
let arr = [1, 2, 2, 3, 3, 3, 3, 4, 5, 6]
let obj = {}
for (let i = 0; i < arr.length; i++) {
let key = arr[i]
if (!obj[key]) {
obj[key] = 1
} else {
obj[key]++
}
}
console.log('obj', obj) // obj {1: 1, 2: 2, 3: 4, 4: 1, 5: 1, 6: 1}
let maxCount = 0
let maxElement = arr[0]
for (let key in obj) {
if (obj[key] > maxCount) {
maxCount = obj[key]
maxElement = key
}
}
console.log(maxElement + '元素' + '' + maxCount + '次数') // 3元素4次数