js检测字符的一些总结

来源:互联网 发布:广州网站排名优化公司 编辑:程序博客网 时间:2024/06/03 13:28

今天偶然间被人抛出一个问题,说检测js中某个字符串出现的次数,刚刚开始想复杂了,还考虑排序树什么的,其实单单解决这个问题并不难,下面上代码:

function getMostTimes(str){  var tmpArr=str.split("");   var obj={};   tmpArr.forEach(function(ele){         obj[ele]?obj[ele]++:obj[ele]=1;   });  return obj;}getMostTimes("acsas");//{a: 2, c: 1, s: 2}

这里就是一个把字符串转为数组的小技巧,然后forEach遍历,检测如果obj中含有该键则+1,否则设为1。

后来还偶然发现一个规律,比如我就想知道某一个字符在一个字符串中出现的次数,当然简单的我可以这样写:

function getTargetTimes(char,str){  var initNum=0;  for(var i=0;i<str.length;i++){       if(str[i]===char)        initNum++;}  return initNum;}getTargetTimes('d','assdddd');//4

下面有更魔性的方法:

function getTargetTimes(char,str){  return str.split(char).length-1;}

→_→ js真好玩