统计字符串中每个字符的出现频率,返回一个 Object,key 为统计字符,value 为出现频率
1. 不限制 key 的顺序
2. 输入的字符串参数不会为空
3. 忽略空白字符
'hello world'
{h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}
'hello world'
{h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}
function count(str) { let result = {}; str = str.replace(/\s/g,""); while(str.length>0){ let len = str.length-1; result[str[len]] ? result[str[len]]++ : result[str[len]] = 1; str = str.slice(0,len); } return result; }
function count(str) { let result = {}; str.replace(/\S/g,function(str){ result[str] ? result[str]++ : result[str] = 1; }) return result; }
//1、将字符串转换为数组,调用forEach方法 //2、利用对象的hasOwnProperty方法求解 function count(str) { var arr = Array.from(str); var obj = {}; arr.forEach(function(item,i){ if(item != " "){ if(!obj.hasOwnProperty(item)){ obj[item] = 1; }else{ obj[item] += 1; } } }) return obj; }
function count(str) { var result={}; str=str.replace(/\s+/g,""); for (var i=0;i<str.length;i++) { result[str.charAt(i)]=result[str.charAt(i)]!=void(0)?result[str.charAt(i)]+1:1; } return result; }
function count(str) { var obj = {}; for (var i = 0; i < str.length; i++) { if (str[i] !== ' ') { var key = str[i]; if (obj[key] !== undefined) { obj[key] = obj[key] + 1; } else { obj[key] = 1; } } } return obj; } 1、首先创建一个空数组 2、将传入的字符串开始遍历输出每一个 3、将解析字符串解析出来的每一个字符都分别赋予之前声明的数组当中【需要判断解析出的数组是否为空】 4、使用if else分别对之前存储的数组进行分别储存 若是存在则obj[key]+1
//就是循环遍历字符串,给对象添加属性, //如果该对象不存在该属性,就添加 //如果存在,就将属性的值加1 function count(str) { var obj = {}; for(var i = 0, len = str.length; i < len; i++){ var s = str[i]; var bool = (s !== ' '); var count = 0; if((!obj[s]) && bool){ count++; obj[s] = count; count = 0; }else if(bool){ obj[s] += 1; } } return obj; } console.log(count('hello world'));
function count(str) { //去除空白字符处理 str = str.replace(/\s*/g,''); //统计词频 let arr = [...str]; let res = arr.reduce(function(prev,cur){ prev[cur] ? prev[cur]++ : prev[cur]=1; return prev; },{}) return res; }