不明白怎么写

不明白怎么写

<!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++){

           //补充代码

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

        }

       //补充代码

       return newArr;

    }

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

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕慕子 2021-04-15 13:38:48

同学你好,对于你的问题解答如下:

1、因为arr.length-1表示获取最后一个元素的索引值,减去i是为了实现反转,具体的过程可以参考老师上一次的回答。

2、同学目前想不到这么写很正常,编程思维不是一两天就能形成的,推荐同学将视频中老师的讲解的案例多练习几遍,模仿老师的思路,多积累,慢慢的就会形成自己的编程思路了。

祝学习愉快~

  • 提问者 神知 #1

    newArr.push(arr);

    老师这里为什么不能这么写?

    2021-06-02 15:49:45
  • 好帮手慕慕子 回复 提问者 神知 #2

    同学你好,因为newArr.push(arr)相当于直接将arr这个数组作为一个元素整体添加到新数组newArr中了,所以不可以这么写,如下:

    http://img1.sycdn.imooc.com//climg/60b7526c0984567e05590135.jpg

    newArr里面只要一个元素,即arr这个数组,打印结果如下:

    http://img1.sycdn.imooc.com//climg/60b75288092cc3b505860239.jpg

    祝学习愉快~

    2021-06-02 17:43:13
好帮手慕慕子 2020-12-31 09:57:40

同学你好,代码效果实现是正确的,对于本题的实现思路,具体可以参考如下解析:

1、arr.length是数组的长度,由于索引是从0开始,所以arr.length - 1是数组最后一项的索引,因此arr[arr.length - 1]是获取数组的最后一项。

2、newArr[i] = arr[arr.length - 1 - i]这句代码含义如下:

(1)当i=0时,代码实际是:newArr[0] = arr[8 - 1 - 0] = arr[7],即为newArr添加一项,值为arr的最后一项,该过程就实现了newArr的第一项,是arr的最后一项。

(2)当i=1时,代码实际是:newArr[1] = arr[8- 1 - 1] = arr[6],即为newArr再添加一项,值为arr的倒数第二项,该过程实现了newArr的第二项,是arr的倒数第二项。

(3)​以此类推...

(4)当i=7 时,代码实际是:newArr[7] = arr[8 - 1 - 7] = arr[0],即为newArr再添加一项,值为arr的倒数第二项,该过程实现了newArr的最后一项,是arr的第一项。

就实现了newArr中的每一项,实际是arr中倒数的项。

祝学习愉快~



  • 提问者 神知 #1

    这个很难。。

    2020-12-31 11:21:01
  • 好帮手慕慕子 回复 提问者 神知 #2

    同学你好,因为同学现在刚开始学习,练习也比较少,所以会出现这种感觉,不过同学也不用担心,这是一个普遍存在的现象,老师也是从你这个阶段慢慢走过来的。同学不用着急,编程的思维能力也不是一两天就可以培养出来的,是一个长期的过程。建议:同学在听老师讲课或者做练习之前,先思考下如果是自己来写,会怎么实现,使用哪些方法,然后在听老师讲解的时候,认真分析自己和老师的差距在哪里,为什么没有想到老师用的方法,然后将老师的实现思路记下来,下次再遇到,就变成了同学自己的知识了。分析结束后,再自己按照老师的思路敲一遍代码,如此往复,很快同学就会发现自己有很大的进步。

    祝学习愉快~

    2020-12-31 13:48:09
  • 提问者 神知 回复 好帮手慕慕子 #3

    return newArr;这句为什么写在for外面,不是里面?

    2021-03-23 10:30:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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