题目详情:
请你编写并返回一个 计数器 函数,它接收一个整型参数 n 。这个 计数器 函数最初返回 n,每次调用它时返回前一个值加 1 的值 ( n , n + 1 , n + 2 ,等等)。
示例:
输入:
n = -2
["call","call","call","call","call"]
输出:[-2,-1,0,1,2]
解释:counter() 最初返回 -2。然后在每个后续调用后增加 1。
解题思路:
首先定义一个名为 createCounter 的函数,它接收一个整型参数 n。在函数内部,我们返回一个匿名函数,该匿名函数使用闭包保存了外部函数的参数 n。
每次调用计数器函数时,闭包中的变量 n 会自增 1,然后返回更新后的值。
代码实现:
function createCounter(n) {
return function () {
return n++;
}
}
// 示例输入
const n = -2;
const calls = ["call", "call", "call", "call", "call"];
// 创建计数器函数
const counter = createCounter(n);
// 调用计数器函数多次,并将结果存储在数组中
const output = calls.map(() => counter());
// 输出结果
console.log(output);