javascript:字符串字符统计的练习总结
题目要求是,函数count会统计传入的字符串和其字符串出现的个数,并返回给Object()对象。
做这道题目的关键点是:
1.首先要有一个能统计字符串的对象。
2.需要遍历传入的字符串。
3.判断当前遍历的字符在这个字符串中出现的次数。
根据以上关键点,写出代码:
1 var resultObject = {}; 2 var str = 'javascript'; 3 4 function count( str ){ 5 for( var i = 0; i < str.length; i++){ //循环传入的变量str 6 var key = str.charAt(i); //将本次循环字符串中的字符,保持在变量key中 7 if(resultObject[key]){ //判断resultObj对象中,有没有本次循环字符串中的字符 8 resultObject[key]++; //如果有则为对象中的属性值加1 9 } else { 10 resultObject[key] = 1; //如果没有则重置在对象中的属性值为1 11 } 12 } 13 return resultObject; 14 } 15 16 var result = count(str); 17 console.log(result);
最后输出变量result,我们就得到了:{j: 1, a: 2, v: 1, s: 1, c: 1, …}
这里有个关键的知识点,就是访问属性的方法,我整理了下,一共有两种。
1.点访问法,通过在对象名称后面加点,来访问对象的属性。
例:
var food = { name:'apple', color:'red' } console.log(food.name); //得到apple
2.方括号访问法,有两种访问方式,第一种是通过访问变量,来访问对象的属性;第二种是直接访问对象的属性。
例:
var food = { name:'apple', color:'red' } var foodName = 'color'; console.log(food[foodName]); //得到red console.log(food['color']); //同样也得到red
最重要的是用方括号法访问的对象属性是变量,是动态的,在这道题里就可以通过这个方法,通过访问变量key(就相当于访问对象resultObject的属性),并给对象的属性添加值。