Coding
2665. Counter II
On this page
⭐
題目敘述
Write a function createCounter. It should accept an initial integer init. It should return an object with three functions.
The three functions are:
increment()increases the current value by 1 and then returns it.decrement()reduces the current value by 1 and then returns it.reset()sets the current value toinitand then returns it.
Example 1:
Input: init = 5, calls = [“increment”,“reset”,“decrement”] Output: [6,5,4] Explanation: const counter = createCounter(5); counter.increment(); // 6 counter.reset(); // 5 counter.decrement(); // 4
Example 2:
Input: init = 0, calls = [“increment”,“increment”,“decrement”,“reset”,“reset”] Output: [1,2,1,0,0] Explanation: const counter = createCounter(0); counter.increment(); // 1 counter.increment(); // 2 counter.decrement(); // 1 counter.reset(); // 0 counter.reset(); // 0
解題思路
Solution
/**
* @param {integer} init
* @return { increment: Function, decrement: Function, reset: Function }
*/
var createCounter = function(init) {
let counter = init;
const increment = () => counter += 1;
const decrement = () => counter -= 1;
const reset = () => counter = init;
return{increment, decrement, reset};
};
/**
* const counter = createCounter(5)
* counter.increment(); // 6
* counter.reset(); // 5
* counter.decrement(); // 4
*/
type ReturnObj = {
increment: () => number,
decrement: () => number,
reset: () => number,
}
function createCounter(init: number): ReturnObj {
let counter: number = init;
const increment = (): number => counter += 1;
const decrement = (): number => counter -= 1;
const reset = (): number => counter = init;
return {increment, decrement, reset};
};
/**
* const counter = createCounter(5)
* counter.increment(); // 6
* counter.reset(); // 5
* counter.decrement(); // 4
*/