美文网首页让前端飞Web前端之路Web 前端开发
修改以下 print 函数,使之输出 0 到 99,或者 99

修改以下 print 函数,使之输出 0 到 99,或者 99

作者: 青山旁小溪边 | 来源:发表于2019-11-03 15:22 被阅读0次

    问题

    修改以下 print 函数,使之输出 0 到 99,或者 99 到 0

    要求

    1. 只能修改 setTimeout 到 Math.floor(Math.random() * 1000 的代码
    2. 不能修改 Math.floor(Math.random() * 1000
    3. 不能使用全局变量
    function print(n){
      setTimeout(() => {
        console.log(n);
      }, Math.floor(Math.random() * 1000));
    }
    for(var i = 0; i < 100; i++){
      print(i);
    }
    

    思路

    这里可以两种方式

    1. 使用立即执行函数
    2. 利用settimeout 接受多个参数的方向,将Math.floor(Math.random() * 1000)作为第三个参数,第二参数可以设置为任意值。

    答案

    • 0-99
    function print(n){
      setTimeout((() => {
        console.log(n)
      })(), Math.floor(Math.random() * 1000));
    }
    for(var i = 0; i < 100; i++){
      print(i);
    }
    
    function print(n){
      setTimeout(() => {
         console.log(n);
       }, 1, Math.floor(Math.random() * 1000));
    }
    for(var i = 0; i < 100; i++){
      print(i);
    }
    
    
    • 99-0
    function print(n){
      setTimeout((() => {
        console.log(99 - n)
      })(), Math.floor(Math.random() * 1000));
    }
    for(var i = 0; i < 100; i++){
      print(i);
    }
    
    function print(n){
      setTimeout(() => {
         console.log(99 - n);
       }, 1, Math.floor(Math.random() * 1000));
    }
    for(var i = 0; i < 100; i++){
      print(i);
    }
    

    相关文章

      网友评论

        本文标题:修改以下 print 函数,使之输出 0 到 99,或者 99

        本文链接:https://www.haomeiwen.com/subject/razkbctx.html