Js之字符串操作

  --判断字符串中出现次数最多的字符,并统计

  --获取字符串的字节长度

  --字符串去重

前几天突然想来,以前遇到一些关于字符串的方法然后资料自己写了demo。参考资料就网上随便找的,现在也不知道在哪里就不贴,请大神勿怪!嘻嘻嘻!

/*
字符串中找出现次数最多的字符,并记录出现次数
* 1、判断字符串中出现次数最多的字符,并统计这个字符 * 2、数组中的每个值,赋值给变量 * 3、对其进行判断如果不存在,则该对象的值为1,有值则+1。字符重复的多的值就越大,重复越小,值就越小 * 4、 循环最后的对象找到出现最多的字符,和出现次数 * */ var aa='asjkdajkasdaxscassdsa'; function max_char(arr){ var obj={}; var letter; var max_key; var max_num=0; for(var i=0;i<arr.length;i++){ letter=arr[i]; if(!obj[letter]){ obj[letter]=1 }else{ obj[letter]++; } } for(key in obj){ if(max_num<obj[key]){ //循环对象中key,和max_num比较,最后的max_num就是最大的次数,对应的max_key就是相应的字符 max_num=obj[key]; max_key=key; } } console.log(max_num,max_key) } max_char(aa);//6 "a"

--获取字符串长度

/*
   取得字符串的字节长度
*中文字符一个是两个字节,英文一个字符是一个字节
* 判断是否是中文字
*返回长度
* */

    function getStringlength(val){
        var zhlength=0;//设置中文字节长度
        var enlength=0;//设置英文字节长度
        for(var i=0;i<val.length;i++){
            if(val[i].match((/[^x00-xff]/ig)!=null)){//判断是否是汉字,[^x00-xff]十六进制判断全角或是汉字
                enlength+=1;  //英文字节数+1
            }else{
                zhlength+=2;//汉字字节数+2
            }
        }
        return zhlength+enlength;//返回所有字节数
    }


var  aa='asjkdajkasdaxscassdsa';
var length=getStringlength(aa);
   console.log(length); //42

--字符串去重

   /*
    去掉字符串中的重复元素
   * 将数组中的所有值赋给一个中间变量
   * 通过obj[key]对每个值进行识别,已经存在的就跳过,没有的就push到自己开始创建的数组中
   * */
var  aa='asjkdajkasdaxscassdsa';
   var arr=[];
   var obj={};
    var letter;
    function delelteChars(val){
        for(var i=0;i<val.length;i++){
            letter=val[i];
            if(!obj[letter]){//判断obj[letter]有没有值
                obj[letter]=1;//如果没有则对他进行赋值
                arr.push(letter)
            }
        }
        return arr;
    }

var chars=delelteChars(aa)
    console.log(chars);
//(截的图)

 以上就是当时想到的写的,应该还有更好的方法,会继续学习!

  

原文地址:https://www.cnblogs.com/sisiliu/p/6016304.html