JavaScript里面的居民们3-去除空格和重复
如代码,分别实现 diyTrim 及 removeRepetition 函数,并跑通代码中的测试用例。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>JS里的居民们3</title> 6 7 </head> 8 <body> 9 <script> 10 /* 11 实现一个字符串头尾去除空格的函数 12 注意需要去除的空格,包括全角、半角空格 13 暂时不需要学习和使用正则表达式的方式 14 */ 15 function diyTrim(str) { 16 //遍历一下每个字符前后是否为空格,是的话进行切割字符串,直到没有空格,结束循环。 17 for(i=0;i<str.length;i++){ 18 if(str[0]==" "||str[0]==" "){ 19 str=str.slice(1); 20 } 21 else if(str[str.length-1]==" "||str[str.length-1]==" "){ 22 str=str.slice(0,str.length-2); 23 } 24 else{ 25 break; 26 } 27 } 28 return str; 29 } 30 31 // 测试用例 32 console.log(diyTrim(' a f b ')); // ->a f b 33 console.log(diyTrim(' ffdaf ')); // ->ffdaf 34 console.log(diyTrim('1 ')); // ->1 35 console.log(diyTrim(' f')); // ->f 36 console.log(diyTrim(' a f b ')); // ->a f b 37 console.log(diyTrim(' ')); // -> 38 console.log(diyTrim(' ')); // -> 39 console.log(diyTrim('')); // -> 40 41 /* 42 去掉字符串str中,连续重复的地方 43 */ 44 function removeRepetition(str) { 45 var result = ""; 46 47 for(i=0,len=str.length;i<len;i++){//定义len,每次循环都会改变长度 48 if(str[0]==str[1]){//判断前后是否一致 49 str=str.slice(1);//记得赋值给str,不然就是原来的数组。 50 } 51 else{ 52 result=result+str[0];//存入不重复的值,并且要往后继续移一个 53 str=str.slice(1); 54 } 55 } 56 return result; 57 } 58 59 // 测试用例 60 console.log(removeRepetition("aaa")); // ->a 61 console.log(removeRepetition("abbba")); // ->aba 62 console.log(removeRepetition("aabbaabb")); // ->abab 63 console.log(removeRepetition("")); // -> 64 console.log(removeRepetition("abc")); // ->abc 65 </script> 66 </body> 67 </html>