找字符串出现最多的字符

要求:
先找出字符串 ‘8587263747153203552943982’ 中出现次数最多的数字及次数,然后去重后并排序(不准使用sort),使得到结果为 ‘0123456789’。

    要求1:找到出现最多的数字和出现的次数

     要求2:去除字符串中重复的数字

     要求3:对去重后的字符串排序
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
       

        //  找出出现最多的数字 字符串循环遍历 

        var str = '8587263747153203552943982';

        // 定义一个对象用于存放 拆分后的 字符串
        var obj = {};

        // 循环遍历 字符串
        for (var i = 0; i < str.length; i++) {
            // 如果该字符是第一次出现就 将它保存并且 值加一
            if (!obj[str.charAt(i)]) {
                obj[str.charAt(i)] = 1
            } else {
                // 如果是再次出现就将它 的值再次加一  
                // 并且有去重效果
                obj[str.charAt(i)]++
            }
        }
        console.log(obj);
        // 此时obj 的属性就是 已经去重的  并且它对应的值就是 该字符串出现的次数
        // 假设 最多的次数的是 max  出现最多的是name 如果有多个相同的数值将他们 推入数组
        var arr = [];
        var arr1 = []; // 用于存储字符 对数字排序
        var max = 0;
        var name;
        for (var key in obj) {
            arr1.push(key);
            if (obj[key] > max) {
                max = obj[key];
                name = key;

            }

        }
        // 再次循环确定是否有 一样数量的字符
        for (var key in obj) {
            if (obj[key] == max) {
                arr.push(key);
            }
        }
        console.log(max); // 这是出现最多的次数
        console.log(name); // 这是出现最多的其中一个
        console.log(arr); // 这数组内出现的 就是出现最多的数字
        console.log(arr1); // 这是去重后的 字符(数字)

        // 用双层for循环  冒泡排序
        // var newarr = [3, 9, 8, 65, 4]; // 测试 冒泡是否正确
        for (var i = 0; i < arr1.length; i++) {
            for (var j = 0; j < arr1.length - i; j++) {
                var maxx;
                if (arr1[j] < arr1[j - 1]) {
                    maxx = arr1[j - 1];
                    arr1[j - 1] = arr1[j];
                    arr1[j] = maxx;

                }
            }
        }
        console.log(arr1); // 这是排序后的数组
    </script>
</body>

</html>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值