`

JS得到字符串中重复次数最多的项两种方法

阅读更多

第一种方法比较繁琐,第二种较为简单

第一种:

基本思路:

1.先将字符串中重复的项归并,以对象形式得出重复的项名和重复的次数;

2.根据每一项重复的次数排序,即得到了重复最多的项名和重复次数

直接上代码:

<script>
    var str = '85skkkhj22gdg541232286oe45854664445sada2fasa51233148dskf7212772';
    var res = countSort(str); //归总为对象素组
    rr = sortArrayByItem(res, 'len'); //根据每一项的length属性排序
    var maxCount = rr[0];
    console.log('重复最多的项是:' + maxCount.item + "---重复的次数是:" + maxCount.len);



    //字符串重复项的归总(以对象数组的形式)
    function countSort(str) {
        var array = str.split('');
        var filter = [];
        var result = [];
        //查找与tar相同的所有项,返回最终一位数组集合arr
        var get = function (str, tar, arr, tmp) {
            if (str.indexOf(tar) >= 0) {
                var tmp = str.slice(str.indexOf(tar) + 1);
                arr.push(tar);
                get(tmp, tar, arr, tmp);
            }
            return arr;
        }
        for (i in array) {
            var elm = [];
            var tmp;
            var fstr = filter.join(); //已完成归并的所用项
            if (fstr.indexOf(array[i]) >= 0)
                continue;
            else {
                var tmp_arr = get(str, array[i], elm, tmp); //完成的一项归总
                result.push({
                    item: tmp_arr[0]
                    , len: tmp_arr.length
                });
                filter.push(array[i]);
            }
        }
        return result;
    }

    //对象数组的排序,item代表要根据那个属性来做排序(从大到小)
    function sortArrayByItem(array, item) {
        for (var i = 0; i < array.length - 1; i++) {
            for (var j = i + 1; j < array.length; j++) {
                if (array[i][item] < array[j][item]) {
                    var tmp = array[i];
                    array[i] = array[j];
                    array[j] = tmp;
                }
            }
        }
        return array;
    }
</script>

 第二种:

基本思路:

1.将字符串中的每一项与其所出现的次数组成对象;

2.将获得的对象按照值做对比,找出最大项;

<script>
 var tt = Char('dj84dccvdda85454kk444gghg6675786fh');
    console.log(tt)
    tt = maxC(tt);
    console.log(tt)
    function Char(str) {
        var uchars = {};
        str.replace(/\S/g, function (l) {
            uchars[l] = (isNaN(uchars[l])) ? 1 : uchars[l] + 1
        })
        return uchars
    }

    function maxC(obj) {
        var maxCount = 0;
        var maxItem = null;
        for (var i in obj) {
            if (obj[i] > maxCount) {
                maxCount = obj[i];
                maxItem = i;
            }
        }
        return {
            maxCount: maxCount
            , maxItem: maxItem
        };
    }
</script>

 

分享到:
评论

相关推荐

    JS查找字符串中出现次数最多的字符

    在JavaScript中查找一个字符串中出现次数最多的字符,可以通过多种方法实现。以下是两种常见的方法,第二种方法更为推荐。 首先,我们来了解两个String对象中的方法:indexOf()和charAt()。 - indexOf()方法用于...

    JS中判断字符串中出现次数最多的字符及出现的次数的简单实例

    标题和描述中提到的知识点主要是在JavaScript(简称JS)中如何实现一个简单的功能,即找出一个字符串中出现次数最多的字符以及对应的出现次数。以下是对这一功能实现过程的详细说明: 首先,要实现这一功能,需要...

    Js查找字符串中出现次数最多的字符及个数实例解析

    以上三种方法都能有效地找出JavaScript字符串中出现次数最多的字符及其出现次数。传统写法简单直观,但需要额外的空间存储字符统计;不使用哈希表的传统写法则节省了空间,但逻辑稍微复杂些;正则表达式写法则利用了...

    JS实现求字符串中出现最多次数的字符和次数示例

    在JavaScript编程中,有时我们需要找出一个字符串中出现最频繁的字符以及它的出现次数。这个问题可以通过遍历字符串,统计每个字符的出现次数,并找到最高频率的字符来解决。下面我们将详细探讨这个问题的解决方案。...

    js代码-找出字符串中出现次数最多的字符

    在JavaScript编程语言中,找出字符串中出现次数...如果`main.js`文件中的代码有任何疑问,或者你需要了解更复杂的字符串分析技巧,如处理Unicode字符或区分大小写等,都可以进一步探索JavaScript字符串操作的相关知识。

    js版字符串快速检索

    在JavaScript开发中,字符串快速检索是一项重要的技能,尤其是在处理大量文本数据时。"js版字符串快速检索"这个主题聚焦于如何高效地在JavaScript环境中查找字符串中的特定子串。以下是一些相关的知识点,涵盖了基础...

    javascript获取重复次数最多的字符

    在JavaScript中,有时我们需要对字符串进行操作,例如寻找在字符串中重复次数最多的字符。本文将介绍如何使用JavaScript编写函数来找出给定字符串中出现次数最多的字符及其重复次数。 为了实现这个功能,我们需要...

    JS实现求出一个字符串中最多出现的字符和个数

    将上述知识点综合起来,我们就能得到一个能够求出字符串中最多出现的字符和个数的JavaScript代码。尽管代码片段中因为OCR扫描的原因存在一些错误(例如,应该是 `.sort((b, a) =&gt; a.length - b.length).join('\n')` ...

    js代码-统计字符串中出现最多的字母

    在JavaScript编程语言中,统计字符串中出现最多的字母是一项常见的任务,尤其在数据分析或者文本处理的场景下。这个任务可以通过各种方法实现,其中一种常见的方法是使用JavaScript的内置对象和数组方法。下面我们将...

    【JavaScript源代码】JavaScript统计字符出现次数.docx

    通过这两种方法,我们可以有效地统计出给定字符串中每个字符出现的次数。第一种方法简单直接,适用于快速统计需求;而第二种方法虽然更为复杂,但它提供了排序和展示的功能,更适合需要展示统计结果的应用场景。无论...

    JS控制只能输入数字并且最多允许小数点两位

    JS(JavaScript)是一种广泛使用的前端脚本编程语言,主要负责网页中的动态交互和数据处理。在网页设计中,控制用户输入是一种常见的需求,特别是在需要用户输入数字的场景下,如何限制输入框只接受数字,并且最多...

    js 校验密码重复的代码

    在JavaScript中创建正则表达式有两种方式: - **字面量表示法**:`/pattern/flags` - **构造函数表示法**:`new RegExp('pattern', 'flags')` #### 1.2 常用正则表达式语法 - `^`:表示字符串的开始。 - `$`:表示...

    js代码-给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    在JavaScript编程语言中,寻找一个字符串中不含有重复字符的最长子串的长度是一个常见的问题,这涉及到字符串处理和滑动窗口的概念。这个问题通常被称为"最长无重复字符的子串"或"最长不重复子串"。下面我们将深入...

    javascript数组去掉重复

    这种方法是第三种方法的原始形式,时间复杂度为O(n),相对前两种方法来说,效率有明显提升。 第三种方法的补充版也基于同样的思想,但是为了避免属性名冲突,使用了"类型+值"的方式来作为对象的属性名。这种方法...

    js拆分字符串并将分割的数据放到数组中的方法

    在JavaScript编程语言中,处理字符串是一项常见的任务,其中包括将一个字符串拆分成多个部分,并将这些部分存储到数组中。这通常通过使用`split()`方法来完成。本文将深入讲解如何利用`split()`方法来实现这一功能,...

    文件转化为base64字符串

    在IT行业中,Base64是一种常见的数据编码方法,它将任意二进制数据转换为可打印的ASCII字符串。这种编码方式常用于在网络上传输非文本数据,如图片、PDF文档等,因为HTTP协议和电子邮件系统通常只能可靠地传输ASCII...

    web前端开发笔试集锦(javascript篇)参考.pdf

    3. **字符统计**:第三部分是找出并统计字符串中出现次数最多的字符。首先,创建一个哈希表(对象)存储字符及其出现次数,接着遍历哈希表找到最大值对应的键,即为出现最多的字符。 4. **浏览器兼容性**:在...

    JavaScript重复元素处理方法分析【统计个数、计算、去重复等】

    通过遍历字符串中的每个字符,并在哈希表中相应地更新值,最后通过遍历哈希表即可找到出现次数最多的字符及其出现的次数。 接着,考虑统计字符串的字节长度时,需要特别注意中文字符与英文字符在编码时占用的空间...

    正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度

    ### 正则表达式判断是否存在中文和全角...通过上述方法,我们可以有效地处理包含中文字符的字符串,无论是检查它们的存在还是计算它们的长度,都能得到准确的结果。这对于需要处理大量中文文本的应用程序来说非常有用。

Global site tag (gtag.js) - Google Analytics