Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24相关的知识,希望对你有一定的参考价值。
参考技术A 1. 先找出每个字符出现的次数let str = 'abcoadadooadbdsfsdfwewerewrwrqeqgfdgfdgcvgbhooo';
let obj = ;
for (let i = 0; i < str.length; i++)
//根据字符的名称查找对象中有没有对应的属性
if (obj[str[i]])
// 有就+1
obj[str[i]]++;
else
// 没有就等于1
obj[str[i]] = 1;
console.log(obj);
返回如下结果:
2.再遍历字符串 比较大小得出谁出现的次数最多,这里有两种方式
2.1 利用for in 循环
// let max = 0;
// let val = '';
// for (var k in obj)
// // k得到的是属性名 ,obj[k]得到是属性值
// if (obj[k] > max)
// max = obj[k];
// val = k;
//
//
// console.log('最多的字符是' + val);
2.2 利用forEach遍历数组
let max =
name: '',
count: 0
Object.keys(obj).forEach(k =>
//判断是否有别的字符串大于max
if (obj[k] > max.count)
max.name = k
max.count = obj[k]
)
console.log(max);
有一万条字符串,要找出前10条出现次数最多的,该如何解决
可以用group by 分组汇总,通过count()函数统计重复次数,然后对重复次数进行倒序去前十
oracle 写法
select 字段名称,cfcountfrom (select 字段名称,count(1) as cfcount
from 表名 group by 字段名称 order by count(1) desc) a
where rownum<=10
sql server 写法
select top 10 字段名称,cfcountfrom (select 字段名称,count(1) as cfcount
from 表名 group by 字段名称 order by count(1) desc) a 参考技术A 分组统计数量 ,再按数量降序排,取前10个就可以了
以上是关于Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24的主要内容,如果未能解决你的问题,请参考以下文章