美文网首页让前端飞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