让前端飞Web前端之路Web 前端开发

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

2019-11-03  本文已影响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)作为第三个参数,第二参数可以设置为任意值。

答案

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);
}

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);
}
上一篇下一篇

猜你喜欢

热点阅读