A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马郭 中级黑马   /  2014-1-2 12:00  /  1963 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马郭 于 2014-1-2 23:44 编辑

题目是将一字符数组反向输出。
代码如下:
<script type="text/javascript">
      var f1=function myrevers(arr){
         for(var i=0;i<arr.length/2;i++){
           var temp="";
           temp=arr;
           arr=arr[arr.length-i-1];
           arr[arr.length-1-i]=temp;
         }   
      }
     var str=new Array();
         str[0]="a"
         str[1]="b";
         str[2]="c";        
        alert(str);   
        f1(str);
        alert(str);
       //alert(f1(str));  //疑惑,用匿名函数这样写的话为什么就不能正确输出c.b.a,而是提示undefined
    </script>
  请各位大虾指教……

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 许庭洲 于 2014-1-2 13:58 编辑

贴心提示:把第i个和第length-i-1进行交换,定义函数一个MyReverse反转函数实现数组的元素的顺序进行反转

<script type="text/javascript">
function MyReverse(arr)
{
      for (var i = 0; i < arr.length / 2; i++)

      {
               var temp = arr;
               arr = arr[arr.length - i - 1];
               arr[arr.length - i - 1] = temp;
       }
}
var arr = new Array();
arr[0] = "a";
arr[1] = "b";
arr[2] = "n";
alert(arr);
MyReverse(arr);
alert(arr);





回复 使用道具 举报
许庭洲 发表于 2014-1-2 13:55
贴心提示:把第i个和第length-i-1进行交换,定义函数一个MyReverse反转函数实现数 ...

我那样写为什么不能输出呢?提示undefined

点评

因为 在你上面f1指向的方法中根本没有返回值,而下面是调用函数,当然是undefined了,你可以尝试在上面的for循环外面添加一句 return 123;看看  发表于 2014-1-2 21:25
回复 使用道具 举报
alert(f1(str)),函数f1没有返回值,所以你输出的时候会显示undefined
回复 使用道具 举报
同楼上,没有返回arr的原因,去掉注释后,应该输出a,b,c,函数f1被调用了两次。
回复 使用道具 举报
黑马郭 发表于 2014-1-2 14:03
我那样写为什么不能输出呢?提示undefined

谢谢 回答了  明白了
回复 使用道具 举报
谢谢各位大虾了 ,明白了 少了return
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马