⭐️
# 題目敘述
Given an integer n
, return a counter
function. This counter function initially returns n
and then returns 1 more than the previous value every subsequent time it is called ( n
, n + 1
, n + 2
, etc).
# Example 1
Input:
n = 10
[“call”,“call”,“call”]
Output: [10,11,12]
Explanation:
counter() = 10 // The first time counter() is called, it returns n.
counter() = 11 // Returns 1 more than the previous time.
counter() = 12 // Returns 1 more than the previous time.
# Example 2
Input:
n = -2
[“call”,“call”,“call”,“call”,“call”]
Output: [-2,-1,0,1,2]
Explanation: counter() initially returns -2. Then increases after each sebsequent call.
# Solution
/** | |
* @param {number} n | |
* @return {Function} counter | |
*/ | |
var createCounter = function(n) { | |
let counter = n - 1; | |
return function() { | |
counter += 1; | |
return counter; | |
}; | |
}; | |
/** | |
* const counter = createCounter(10) | |
* counter() // 10 | |
* counter() // 11 | |
* counter() // 12 | |
*/ |
function createCounter(n: number): () => number { | |
let counter = n - 1; | |
return function() { | |
counter += 1; | |
return counter; | |
} | |
} | |
/** | |
* const counter = createCounter(10) | |
* counter() // 10 | |
* counter() // 11 | |
* counter() // 12 | |
*/ |