生病了早上完全起不來,下午身題狀況比較好趕快來把每日進度給完成!
Day15: Interval Cancellation
問題描述:
Given a function fn
, an array of arguments args
, and an interval time t
, return a cancel function cancelFn
.
The function fn
should be called with args
immediately and then called again every t
milliseconds until cancelFn
is called at cancelT
ms.
問題難度:Easy
問題限制:
fn
is a functionargs
is a valid JSON array1 <= args.length <= 10
30 <= t <= 100
10 <= cancelT <= 500
我的解題過程:
這是每隔一段時間就要執行一次fn
,直到cancelFn
執行才停止。
每隔一段時間要執行要使用**setInterval
**
1 | const timeoutID = setInterval(() => {fn(...args)}, t) |
然後創建cancelFn
:
1 | const cancelFn = () => {clearInterval(timeoutID)} |
之後 return cancelFn,應該就可以得到答案了吧….
果然是錯的,目前看起來是0秒沒執行
所以只要我們自己手動輸入一次應該就可以了:
1 | fn(...args) |
沒錯確實是這樣!
完整code
1 | var cancellable = function(fn, args, t) { |
其他code
無,大同小異
總結
這其實算是有點作弊,昨天練習了setTimeout
時查看資料時剛好有看到setInterval
,因此非常容易做出來,唯一疑惑了一下是在加fn(...args)
這段時,想說不會這麼簡單吧,結果還真的就是這麼直覺XD