老师来看看这样O不OK

老师来看看这样O不OK

<!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.sort(function(a,b){return b-a});

           document.write(arr[i]+',')


        }

       //补充代码

       return newArr

    }

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

</script>

</body>

</html>

我这种方法是不是很笨,如果在实战中用到感觉会很麻烦,因为我真的理解不了newArr[i]=arr[arr.length-1-i]这个方法,我只能自己找方法。。。。

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

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

2回答
好帮手慕星星 2020-07-17 18:42:54

同学你好,reverse()本身是反转的意思,可以实现效果。但是这里是通过封装函数来模拟reverse()方法的作用,所以还是不推荐使用reverse()方法。

祝学习愉快!

好帮手慕星星 2020-07-17 17:52:33

同学你好,虽然输出结果对于原数组[1, 2, 3, 4, 5, 6, 7, 8]来说是反向输出,但是数组内容一旦不按照顺序,就不是反向输出了,为排序。因为sort()方法的作用为排序,并不是用来反向的。参考修改

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

newArr[i]=arr[arr.length-1-i]语句的意思是原数组中的每一项倒着放进新数组中。例如arr的数组长度为3

1、那么arr数组最后一项为arr[2],索引从0开始,所以最后一项的索引为2,也就是3-1 。新数组newArr第一项为newArr[0],所以newArr[0]=arr[3-1-0] 

2、arr数组倒数第二项为arr[1],也就是arr[3-1-1],新数组第二项为newArr[1],所以newArr[1]=arr[3-1-1]

后面以此类推, 得出newArr[i]=arr[arr.length-1-i]的结论。

自己再测试理解下,祝学习愉快!

  • 提问者 DANLAI #1
    如果用reverse的话会不会好理解一点
    2020-07-17 18:02:43
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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