--判断字符串中出现次数最多的字符,并统计
--获取字符串的字节长度
--字符串去重
前几天突然想来,以前遇到一些关于字符串的方法然后资料自己写了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);
//(截的图)
以上就是当时想到的写的,应该还有更好的方法,会继续学习!