Tags:interview
Category: Front End
循环亮灯问题
-
题目描述
现有三盏灯红灯 黄灯 绿灯 红灯持续亮10秒 黄灯3秒 绿灯5秒, 请实现一个方法让3盏灯有序替换亮灯灭灯 -
思路
使用定时器递归调用不同的亮灯方法, 通过map匹配亮灯持续时间将持续时间传递给定时器
const stop = () => {
return 'red';
}
const attention = () =>{
return 'yellow';
}
const go = () =>{
return 'green';
}
const map = {
'red':10000,
'yellow':3000,
'green':5000
}
const lights = [stop,attention,go]
const jump = (i) =>{
console.log(lights[i]())
setTimeout( () => {
jump(i<2 ? ++i : i=0);
},map[lights[i]()])
}
jump(0)
- 2019/11/20 此方法解决了问题, 但是回头看代码似乎过于复杂