给定一个整型参数 n,请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值 ( n , n + 1 , n + 2 ,等等)。
示例 1:
输入:
n = 10
["call","call","call"]
输出: [10,11,12]
解释:
counter() = 10 // 第一次调用 counter(),返回 n。
counter() = 11 // 返回上次调用的值加 1。
counter() = 12 // 返回上次调用的值加 1。
示例 2:
输入:
n = -2
["call","call","call","call","call"]
输出: [-2,-1,0,1,2]
解释: counter() 最初返回 -2。然后在每个后续调用后增加 1。
提示:
-1000 <= n <= 10000 <= calls.length <= 1000calls[i] === "call"
参考方案:
/**
* @param {number} n
* @return {Function} counter
*/
var createCounter = function(n) {
return function() {
return n++
};
};
/**
* const counter = createCounter(10)
* counter() // 10
* counter() // 11
* counter() // 12
*/
方案提示:
i++和++i的区别:
1、i++ 返回原来的值,++i 返回加1后的值。
2、i++ 不能作为左值,而++i可以。
3、i++前者是先赋值,然后再自增;++i后者是先自增,后赋值。
根据上述代码,输入n=10,如果是n++, 则输出[10,11,12];如果是++n,则输出[11,12,13]
LeetCode运行: