不知道怎么理解不用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];
Ron15
2018-01-13
newArr[i]=arr[arr.length-i-1];这句意思就是循环都是从newarr的位置0加数字对吗
樱桃小胖子
2018-01-02
原理就是:for循环遍历arr,第一个输出的元素是1,然后把这个1插入到newArr这个数组中,现在这个数组还是空的,所以不管是开头添加,还是后面添加,得到的都是newArr=[1],然后arr输出第二个元素,这时,newArr这个数组中开头插入一个元素就是,newArr=[2,1]以此类推,就实现了翻转呀。可以结合代码理解下哦;
祝学习愉快~
相似问题
回答 2
回答 1