# 2665. 计数器 II
# 题目
请你写一个函数 createCounter. 这个函数接收一个初始的整数值 init 并返回一个包含三个函数的对象。
这三个函数是:
increment() 将当前值加 1 并返回。 decrement() 将当前值减 1 并返回。 reset() 将当前值设置为 init 并返回。
示例 1:
输入:init = 5, calls = ["increment","reset","decrement"] 输出:[6,5,4] 解释: const counter = createCounter(5); counter.increment(); // 6 counter.reset(); // 5 counter.decrement(); // 4成功
1
2
3
4
5
6
7
2
3
4
5
6
7
示例 2:
输入:init = 0, calls = ["increment","increment","decrement","reset","reset"] 输出:[1,2,1,0,0] 解释: const counter = createCounter(0); counter.increment(); // 1 counter.increment(); // 2 counter.decrement(); // 1 counter.reset(); // 0 counter.reset(); // 0成功
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
提示:
- -1000 <= init <= 1000
- 总调用次数不会超过 1000
# 答案
/** * @param {integer} init * @return { increment: Function, decrement: Function, reset: Function } */ var createCounter = function(init) { let num = init; return { increment() { return ++num; }, decrement() { return --num; }, reset() { num = init; return num; } } }; /** * const counter = createCounter(5) * counter.increment(); // 6 * counter.reset(); // 5 * counter.decrement(); // 4 */成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 思路
闭包