要求:统计一个字符串中 各字符串出现的次数。比如 "a1a35b5" 统计出来应该是 a-2, 1-1, 3-1, b-1, 5-2。
思想一:用split方法将key字符切除,比较源字符串长度和新字符串长度,得出key字符个数。
图例:
代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>阶乘相加</title> 6 7 <script> 8 var str = "afsfs564s8f45sf5s"; 9 var str2 = ‘‘; 10 11 //写法一: 12 while(str.length>0){ 13 str2=str.split(str[0]).join(‘‘); 14 var times=str.length-str2.length; 15 document.write(str+‘<br>‘ 16 +str2+‘<br>‘ 17 +str[0]+‘-‘+times+‘<hr>‘); 18 str=str2; 19 } 20 21 22 //写法二: 23 for(var i=0;i<str.length;){ 24 str2=str.split(str[0]).join(‘‘); 25 var times=str.length-str2.length; 26 document.write(str+‘<br>‘ 27 +str2+‘<br>‘ 28 +str[0]+‘-‘+times+‘<hr>‘); 29 str=str2; 30 } 31 32 </script> 33 </head> 34 <body> 35 36 </body> 37 </html>
思想二:选出key值,在字符串中匹配与key相等的字符的个数。
代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>阶乘相加</title> 6 7 <script> 8 var str = "afsfs564s8f45sf5s"; 9 var str1 = "afsfs564s8f45sf5s"; 10 var str2 = ‘‘; 11 12 13 var jsonObj = {}; //key=value 14 15 for(var i=0;i<str1.length;i++){ 16 jsonObj[str1[i]]?jsonObj[str1[i]]=jsonObj[str1[i]]+1:jsonObj[str1[i]]=1; //如果能找到key值?key=value+1:key=1; 17 } 18 19 document.write(JSON.stringify(jsonObj)); 20 21 </script> 22 </head> 23 <body> 24 25 </body> 26 </html>
运行结果:{"4":2,"5":3,"6":1,"8":1,"a":1,"f":4,"s":5}
反思:
一:while与if的区别:
while用于循环语句,而if用于判断和分支语句。
时间: 2024-10-11 10:52:01