黑马程序员技术交流社区

标题: Js里自定义String功能反转,失败。求解哪里出了问题 [打印本页]

作者: 水果牛牛    时间: 2015-9-21 21:48
标题: Js里自定义String功能反转,失败。求解哪里出了问题
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.         <head>
  4.                 <meta http-equiv="Content-Type" content="text/html; charset=GBK">
  5.                 <title>Untitled Document</title>
  6.         </head>
  7.         <body>
  8.                 <script type="text/javascript" src="Out.js"></script>
  9.                 <script type="text/javascript" src="StringTool.js"></script>
  10.                
  11.                 <script type="text/javascript">
  12.                         //使用自定义并内化到String对象的方法toCharArray来将字符串变为字符数组。
  13.                         var str="abcde";
  14.                         var arr=str.toCharArray();
  15.                         println(arr);
  16.                        
  17.                         //使用自定义并内化到String对象的方法reverse来将字符串反转。
  18.                         var reStr=str.reverse();
  19.                         println("反转前:"+str);
  20.                         println("反转后:"+reStr);
  21.                        
  22.                 </script>
  23.         </body>
  24. </html>
复制代码
上面是html代码,下面是封装在js文件里的自定义方法——reverse它的作用是把字符串反转,帮忙看看是哪里出错了,输出不了语句。
  1. /**
  2. * 字符串对象新功能,将字符串转成一个字符数组。
  3. * 返回一个数组。
  4. */
  5. String.prototype.toCharArray=function(){
  6.         var arr=new Array(this.length);
  7.         for(var i=0;i<arr.length;i++){
  8.                 arr[i]=this.charAt(i);
  9.         }
  10.         return arr;
  11. };

  12. /**
  13. * 字符串对象新功能,将字符串反转。
  14. */

  15. String.prototype.reverse=function(){
  16.         var arr=this.toCharArray();
  17.         var str;
  18.         for(var start=0,end=arr.length-1;start<end;start++,end--){
  19.                 var temp=arr[start];
  20.                 arr[start]=arr[end];
  21.                 arr[end]=temp;
  22.         }
  23.         for(var i=0;i<arr.length;i++){
  24.                 str=str.concat(arr[i]);
  25.         }
  26.         return str;
  27. };
复制代码




作者: xiaoya0o0o    时间: 2015-9-21 21:48
把println改为 alert 把var str="" 把str=str.concat(arr[i]);改为str = str +arr[i]

作者: 水果牛牛    时间: 2015-9-22 09:40
xiaoya0o0o 发表于 2015-9-21 22:56
把println改为 alert 把var str="" 把str=str.concat(arr);改为str = str +arr

哇,真的可以。问一下为什么str=str.concat(arr);不可以呢,不是一样是连接字符串吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2