老师来看看这样O不OK

来源:2-23 编程练习

DANLAI

2020-07-17 17:23:12

<!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]这个方法,我只能自己找方法。。。。

写回答

2回答

好帮手慕星星

2020-07-17

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

祝学习愉快!

0

好帮手慕星星

2020-07-17

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

http://img.mukewang.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]的结论。

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

0
hANLAI
h 如果用reverse的话会不会好理解一点
h020-07-17
共1条回复

0 学习 · 40143 问题

查看课程