字符串字符统计

题目描述

统计字符串中每个字符的出现频率,返回一个 Object,key 为统计字符,value 为出现频率
1. 不限制 key 的顺序
2. 输入的字符串参数不会为空
3. 忽略空白字符 
输入例子:
count('hello world')
输出例子:
{h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}

题目解析

1.遍历输入字符串的每一个非空字符,每一个非空字符即为返回的Object对象的属性key

2.如果该对象第一次遍历该非空字符,就添加该字符为属性值

3.如果再次遍历到相同的非空字符,说明该字符属性存在,属性值value加1

 

示例程序1
 1 function count(str){
 2     var obj = {};
 3     str=str.replace(/\s/g, '');
 4     for(var i=0,len=str.length; i<len; i++){
 5         var key = str[i];
 6          if(obj[key] != null){
 7              obj[key]++;
 8          }else{
 9              obj[key]=1;
10          }
11     }
12     return obj;
13 }
14 //console.log(count('hello world'));

 

示例程序2
 1 function count(str){
 2     var obj = {};
 3     //匹配非空字符
 4     str.replace(/\S/g, function(key){
 5         if(key in obj)
 6             obj[key]++;
 7         else
 8             obj[key]=1;
 9     })
10     return obj;
11 }
12 //console.log(count('hello world'));

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

 

参考地址

链接:https://www.nowcoder.com/questionTerminal/777d0cd160de485cae0b1fd1dd973b44
来源:牛客网

posted @ 2017-03-23 10:36  gq_orange  阅读(688)  评论(0编辑  收藏  举报