怎么输出是2

怎么输出是2

 function min(){
        for(var i = 0; i<arguments.length; i++){
            var num=arguments[0];
          if(arguments[i]<num){
              num=arguments[i];
              
          }
          
        }
        return num;
    };
    document.write(min.apply(window,[2, 4, 1, -1, 56, 3]))


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

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

2回答
好帮手慕星星 2018-05-13 13:28:24

可以这样修改:

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

因为arguments[0]已经赋值给了num变量,所以比较的话就直接从arguments[1]开始比较,所以长度需要减1,可以把设置num变量拿到for循环外面,要不然每循环一次,num的值就会被赋值成2,这样结果就是错的。

好帮手慕星星 2018-05-11 17:34:13

这样修改就可以了:

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

把i定义成1,i的值小于输入的长度减去1,也就是减去第一个arguments[0]的位置,i值要进行增加,最后输出的时候再转化对象。

  • 提问者 chenqianguan #1
    谢谢你, 为什么后面有i++,返回的num已经是最小值,为什么不直接返回num
    2018-05-11 17:53:02
  • 好帮手慕星星 回复 提问者 chenqianguan #2
    i++在for循环里面,如果if条件不成立,要增加i的值,才能继续循环呀。
    2018-05-11 17:58:24
  • 提问者 chenqianguan 回复 好帮手慕星星 #3
    谢谢,后面还有一个问题没有回答:返回的num已经是最小值,为什么不直接返回num,而还要用apply
    2018-05-12 09:41:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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