老师,这样写对吗?

老师,这样写对吗?

<!DOCTYPE html>

<html>

<head>

    <title>function sort</title>

    <meta charset=utf-8>

    <script type="text/javascript">

     function arr(){

      var newArr=[];

     for(var i=0;i<arguments.length;i++){

        newArr[i]=arguments[i];

     }

     newArr.sort(function(a,b){return b-a})

     return newArr;

     }

     var s=arr(1,2,3,4,5,6,7,8);

     document.write(s);

    </script>

</head>

<body>

</body>

</html>


正在回答

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

2回答

同学你好,newArr[i]=arguments[arguments.length-1-i],这里的arguments表示传入的数组,也就是指原数组,将原数组中最后一项赋值给新数组第一项,以此类推实现倒序赋值,

例如i的值为0,arguments的长度为8,那么8-0-1=7就是数组中最后一项的索引,newArr[0]=arguments[7],这样就将最后一项赋值为第一项了。以此类推,newArr[1]=arr[8-1-1],也就是newArr[1]=arguments[6],这样实现了倒序.

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕星星 2020-01-11 10:56:53

同学你好,sort方法会将数组升序或者降序排列,如果数组一开始就是打乱的,不是像代码中这样有顺序的,那么结果就不对

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

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

可以按照提示中完成:

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

将传入内容倒着赋值给新数组,自己再测试下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕尘埃191116 #1
    老师好,我理解不了,newArr[i]=arguments[arguments.length-1-i]
    2020-01-13 10:53:53
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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