问题
修改以下 print 函数,使之输出 0 到 99,或者 99 到 0
要求
- 只能修改 setTimeout 到 Math.floor(Math.random() * 1000 的代码
- 不能修改 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);
}
思路
这里可以两种方式
- 使用立即执行函数
- 利用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);
}
网友评论