老师,我的这个代码输出一直是0,为什么呢?

老师,我的这个代码输出一直是0,为什么呢?

<script type="text/javascript">
  var min=function(){
      var a=0;
      for (var i=0; i<arguments.length; i++){
          if(a>arguments[i]){
              a=arguments[i];
          } else {
              return a;
          }
      }
  }
  min();
  console.log(min.apply(null,[2,4,1,-1,56,3,-7]))
</script>

正在回答

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

1回答

同学你好,1、这里应该在所有的都对比完之后(for循环执行完之后),在返回a哦,不然当执行不满足if语句的时候,直接就返回了,不在执行了哦。所有应该在循环结束之后在返回。

2、建议:a的这个初始值可以设置为数组的第一个值。若是为0的话,假如数组中的值都大于0的话,最后输出的最小值是这个0,而不是数组中的最小值哦。

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

希望能帮助到你,欢迎采纳。

祝学习愉快!

  • 老师,定义a为arguments[0]时,for语句里的var i=0是不是应该改为var i=1开始呢?
    2019-05-05 09:37:28
  • 同学很善于思考哦,这里是可以改为var i=1开始的哦,继续加油!祝学习愉快~
    2019-05-05 09:49:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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