iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Software Development

LELECOCODE 每一天系列 第 15

Day 15 : Leetcode 小挑戰,30 Days of JavaScript

  • 分享至 

  • xImage
  •  

Day 15: 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.

var cancellable = function(fn, args, t) {
    
};

Example 1:
Input: fn = (x) => x * 2, args = [4], t = 35, cancelT = 190
Output:
[
{"time": 0, "returned": 8},
{"time": 35, "returned": 8},
{"time": 70, "returned": 8},
{"time": 105, "returned": 8},
{"time": 140, "returned": 8},
{"time": 175, "returned": 8}
]

Example 2:
Input: fn = (x1, x2) => (x1 * x2), args = [2, 5], t = 30, cancelT = 165
Output:
[
{"time": 0, "returned": 10},
{"time": 30, "returned": 10},
{"time": 60, "returned": 10},
{"time": 90, "returned": 10},
{"time": 120, "returned": 10},
{"time": 150, "returned": 10}
]

Example 3:
Input: fn = (x1, x2, x3) => (x1 + x2 + x3), args = [5, 1, 3], t = 50, cancelT = 180
Output:
[
{"time": 0, "returned": 9},
{"time": 50, "returned": 9},
{"time": 100, "returned": 9},
{"time": 150, "returned": 9}
]


學到一課:
setInterval() and clearInterval() are a pair of functions designed to work together. They provide a clear and consistent way to start and stop repeating actions at specified intervals.

var cancellable = function(fn, args, t) {
    fn(...args);
    let time = setInterval(() => fn(...args),t);

    let result = () => clearInterval(time)
    return result;
};

上一篇
Day 14 : Leetcode 小挑戰,30 Days of JavaScript
下一篇
Day 16 : Leetcode 小挑戰,30 Days of JavaScript
系列文
LELECOCODE 每一天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言