不知道怎么理解不用reverse()输出的是:5,4,3,2,1

来源:2-20 编程练习

爱你一生的我

2018-01-01 18:09:10

不知道怎么理解不用reverse()数组1,2,3,4,5,通过该函数反转后,输出的是:5,4,3,2,1
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,6,7,8]));

做出来了不知道怎么理解这句newArr[i]=arr[arr.length-i-1];

写回答

3回答

Ron15

2018-01-17

咳咳,这位同学,请思考:当i是0的时候,newArr[i]=arr[arr.length-i-1]=arr[8--0-1]=arr[7]=8,那么newArr的位置0就是8。此时newArr为newArr[8];

以此类推,当i是1的时候,newArr[i]=arr[arr.length-i-1]=arr[8--1-1]=arr[6]=7,那么newArr的位置1就等是7。此时newArr为newArr[8,7];

当i是2的时候,newArr[i]=arr[arr.length-i-1]=arr[8--2-1]=arr[5]=6,那么newArr的位置2就等是6。此时newArr为newArr[8,7,6];



0

Ron15

2018-01-13

 newArr[i]=arr[arr.length-i-1];这句意思就是循环都是从newarr的位置0加数字对吗

0
hon15
h 明白了,谢谢
h018-01-17
共3条回复

樱桃小胖子

2018-01-02

原理就是:for循环遍历arr,第一个输出的元素是1,然后把这个1插入到newArr这个数组中,现在这个数组还是空的,所以不管是开头添加,还是后面添加,得到的都是newArr=[1],然后arr输出第二个元素,这时,newArr这个数组中开头插入一个元素就是,newArr=[2,1]以此类推,就实现了翻转呀。可以结合代码理解下哦;

祝学习愉快~


0

0 学习 · 640 问题

查看课程