所以我有一个函数getNext,它接受一个参数i。函数需要递归迭代直到i为0.但是,在函数中我需要一组数字从2增加。
function getNext(i) {
if(i == 0) return;
console.log('index: ' + i);
console.log( code_here );
i--;
getNext(i);
}
因此getNext(3)的输出将是:
index: 3
2
index: 2
3
index: 1
4
有什么想法吗?我试图这样做而不添加额外的变量,但我不知道是否可能。
答案 0 :(得分:0)
您可以为该值设置另一个参数。
<强> 实施例 强>
function getNext(i, val) {
if (i == 0) return;
if (i === 3) {
val = 2;
} else {
val++;
}
console.log("index: ", i, " value: ", val);
i--;
getNext(i, val);
}
getNext(3);
答案 1 :(得分:0)
没有附加变量的解决方案,但是......
......一个有封闭的人:
var getNext = (function(n) {
var value = (typeof n !== "number" ? 2 : n);
return function(i) {
if (i === 0) return;
console.log(i, value);
value++;
getNext(--i);
}
}());
//}(5 /* <-- start value */));
getNext(3);
&#13;
...还有一个附加参数:
function getNext(i, n) {
if (i === 0) return;
n = (typeof n !== "number" ? 2 : n);
console.log(i, n);
getNext(i - 1, n + 1);
}
getNext(3);
//getNext(3, 5 /* <-- start value */);
&#13;
如果需要,两者都允许您定义不同的起始值。
答案 2 :(得分:0)
根据您的预期输出(登录控制台),这里是您的代码,但我不知道您将如何处理日志。
function getNext(i, x) {
var inc = x ? 2 : x;
if(i == 0) return;
console.log('index: ' + i + ', value: ' + inc);
getNext(--i, ++inc);
}
并将其称为getNext(3)