老师,麻烦帮我看下 我错误在哪里

老师,麻烦帮我看下 我错误在哪里

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8" />

    <title></title>

</head>

<body>

    <script>

    var min=function(){

        if(arguments.length==0)

            var x=0

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

            x+=arguments[i]

        }

        return x

   }

   // var b=function (){ var h=[2, 4, 1, -1, 56, 3, -7] if(h<0) return h} console.log(min.apply(window.b))

   //老师我这里有错误也就是第三部变量保存那里好像这么写一直不对是因为我比较成了数组的长度吗

   var b=[2, 4, 1, -1, 56, 3, -7]

   

       

   var minimum=min.apply(window.b);

   console.log(minimum)

     

    </script>

</body>

</html>


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

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

1回答
好帮手慕慕子 2022-06-21 15:26:02

同学你好,问题解答如下:

1、apply方法中传入的参数使用逗号隔开,如下:

https://img1.sycdn.imooc.com//climg/62b17013093bc97b06340126.jpg

2、if (arguments.length == 0)语句后面没有添加{},默认会将后面的var  x= 0 作为满足条件后执行的语句, 导致没有初始化x值为0,就直接使用了,此时x的值默认为undefined。可以输出查看下:

https://img1.sycdn.imooc.com//climg/62b1712a09a9914209810507.jpg

判断长度等于0后,直接return就可以。for循环内,并不需要对参数进行累加,而是,对x和arguments[i]进行比较,如果arguments[i]比x的值小,那么就将其赋值给x,直到循环结束,就可以获取到最小值。

https://img1.sycdn.imooc.com//climg/62b1725609f6b14811850647.jpg

祝学习愉快~

  • 提问者 豆包侠 #1

    老师我记得 if()不写{}也是可以的吧 只要不放在同一行是吗 还是必须要写

    2022-06-21 15:44:05
  • 好帮手慕慕子 回复 提问者 豆包侠 #2

    问题解答如下:

    1、可以不写{},不过推荐加上,增加代码的可阅读性。

    2、如果if语句省略了{},而if() 后面又没有;分号,那么默认会将后面的一句代码,即使代码换行了,也会作为if对应的条件语句,在前面老师也测试过,如下:

    https://img1.sycdn.imooc.com//climg/62b177be0910a16108140359.jpg

    祝学习愉快~

    2022-06-21 15:50:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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