字符串方法 找字符串出现次数最多的字符 数组去重 排序

方法1:核心:使用charAt()方法找是否存在str里面的值

34行把字符串转化为数组,使用sort方法排序 然后输出字符串(这里是解决一个bug,下面有解释)

创建一个空对象

遍历str字符串

如果空对象里面没有str里面的值就在空对象里面创建一个新的属性值赋值为1

如果空对象里面有str里面的值就给这个值属性加1

得到一个对象{

属性:属性值(个数)

}这种形式

 得到这个对象之后根据需求遍历一下,拿属性值来比较大小

定义max =“”和 sum=0来装结果

如果sum小于遍历出来的属性值就把这个属性值赋值给sum得到这个对象里面的最大值

并且把k(属性名)赋值给max 表示最大值的那个字符

最后输出结果,用字符串拼接

console.log("最大值是" + max, "个数为" + sum);

 

 方法2:(简单一些)把charAt()方法省略为通过下标找元素,如果没有为false有为true

        var str = "abbcccddddd"

        function fun(str) {
            var obj = {}
            for (var i = 0; i < str.length; i++) {
                if (obj[str[i]]) {
                    obj[str[i]]++
                } else {
                    obj[str[i]] = 1
                }
            }
            console.log(obj);
            var max = "",
                sum = 0
            for (var k in obj) {
                if (sum < obj[k]) {
                    max = k
                    sum = obj[k]
                }
            }
            console.log("最大值为:" + max + ",个数为:" + sum);
        }
        fun(str)

 

查找指定字符进行修改

var str="abcdefgabcdefg"

str.replace("a","b")  这个方法只能找到第一个a进行修改 

如果你想修改里面全部的"a"

方法1:str.replaceAll("a","b") 会找到全部的a修改为b(网上找了好久没有找到这个方法就发了)

方法2:遍历字符串找到指定的字符进行修改     把所有a改成b  

        var str="abcdefgabcdefg"

        str=str.split("")//使用for in要转为数组 可以不转使用for遍历字符串

        for (var k in str) {

            if (str[k] == "a") {

                str[k] = "b"

            }

        }

       str=str.join(")

        console.log(str);//输出是数组使用join变成字符串

数组去重加排序

        var arr = [1, 2, 4, 3, 2, 3, 5, 2, 7, 5, 7, 5, 9, 7, 6, 8, 3]
        var arr2 = Array.from(new Set(arr)).sort()
        console.log(arr2);

 顺序排序(从上到下或者从下到上)

      if (show) {
        //  console.log("升序");
        state.list.sort((a, b) => {
          return a.id - b.id;
        });
      } else {
        // console.log("降序");
        state.list.sort((a, b) => {
          return b.id - a.id;
        });
      }

 随机排序 (打乱排列顺序)

     porkArr.sort((x, y) => {
      return Math.random() - 0.5;
    });

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巨蟹座守护骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值