为什么反向输出后的值不显示?

为什么反向输出后的值不显示?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>数组</title>

</head>

<body>

<script>

    function arrReverse(arr){

        var newArr=[];

        for(var i=0;i<arr.length;i++){

           //补充代码

           arr[arr.length-1]=newArr[i];

        }

       //补充代码

       return newArr;

    }

   document.write(arrReverse([1,2,3,4,5,6,7,8]));

</script>

</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,是传值的问题。

第一次代码中调用方法传入的是个数组,第二次就变成了各项内容了,所以没有显示出来,可以修改为:

http://img1.sycdn.imooc.com//climg/5d4bc5fd00013abb06270287.jpg

如果传入的是各项内容,那么参数arr代表的就是一个,也就是开始的数字1,不满足for循环直接将newArr空数组返回,所以页面中没有显示。

自己可以再测试下。

好帮手慕星星 2019-08-08 11:08:41

同学你好,代码写的有问题,参考修改:

http://img1.sycdn.imooc.com//climg/5d4b917d00016d1207180389.jpg

1、newArr数组定义的是一个空数组,所以需要将原数组中的值赋值给新数组,新数组在等号前面,原数组在等号后面

2、原数组中最后一项索引为arr.length-1,倒数第二项索引为arr.length-1-1,以此类推原数组中每一项索引为arr.length-i-1 。

自己修改测试下,祝学习愉快!

  • 提问者 王嘉炜 #1
    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>数组</title> </head> <body> <script> function arrReverse(arr){ var newArr=[]; for(var i=0;i<arr.length;i++){ //补充代码 newArr[i]=arr[arr.length-i-1]; } //补充代码 return newArr; } document.write(arrReverse(1,2,3,4,5)); </script> </body> </html>
    2019-08-08 14:36:46
  • 提问者 王嘉炜 #2
    修改后还是不显示值是为什么
    2019-08-08 14:37:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师