请问老师

请问老师

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>数组</title>

</head>

<body>

<script>

    function arrReverse(arr){//调用arrreverse数组,函数设定为arr

        var newArr=[];  //设置新的变量名称newArr

        for(var i=0;i<arr.length;i++){//循环变量,i从0开始,小于函数arr数组arrReverse的长度值,长度值为8,则i从0到8的循环

           //补充代码

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

           //i为0时 newArr[0]=arr[8-1-0],数组中索引为7的是8,所以newArr=8

           //i为1时 newArr[1]=arr[8-1-1],数组中索引为6的是7,所以newArr=7

           //i为2时 newArr[2]=arr[8-1-2],数组中索引为5的是6,所以newArr=6

           //i为3时 newArr[3]=arr[8-1-3],数组中索引为4的是5,所以newArr=5

           //i为4时 newArr[4]=arr[8-1-4],数组中索引为3的是4,所以newArr=4

           //i为5时 newArr[5]=arr[8-1-5],数组中索引为2的是3,所以newArr=3

           //i为6时 newArr[6]=arr[8-1-6],数组中索引为1的是2,所以newArr=2

           //i为7时 newArr[7]=arr[8-1-7],数组中索引为0的是1,所以newArr=1

    ​    ​   //i为8时 newArr[8]=arr[8-1-8],数组中索引为-1

        }

       //补充代码

       return newArr;

    }

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

</script>

</body>

</html>

问题描述:

请问老师,使用for循环的时候0是会到8循环的​,但是如果循环到8的时候按照我的想法是对应的数组索引是-1,这个该怎么理解呢

正在回答

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

1回答

同学你好,代码是对的,问题解答如下:

i是从0开始,但是最大值只能到7,不是8。arr.length是8,而循环条件是i<arr.length :

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

即i小于8时,才能进入for循环,并执行for中的代码;所以i只能到7,不会存在下面这一条:

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

同学再理解一下。

祝学习愉快!

  • qq_慕容254374 提问者 #1
    好的,我给while循环给搞混了
    2021-07-04 18:18:38
  • qq_慕容254374 提问者 #2
    While循环中,i++在下面,所以还会循环到8对吧
    2021-07-04 18:22:29
  • 好帮手慕久久 回复 提问者 qq_慕容254374 #3

    同学你好,是的。while循环时,会出现i循环到8的情况。如下这样分析很棒,有利于同学更清楚的明白逻辑:

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

    建议把while循环也分析一遍。

    祝学习愉快!

    2021-07-04 18:28:19
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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