我有一个递归函数,需要知道它什么时候完成,所以我可以返回最新的结果;
让召唤结果增长。
我需要它只在它成长后才返回它。
答案 0 :(得分:1)
const target= 10;
const list= [2, 5];
const zero = 0;
let results = [];
function test(amount, list, start, list) {
let next_results = [];
for (let i = start; i < collection.length; i++) {
let left = amount - collection[i];
let currentList = list.slice(zero);
currentList.push(collection[i]);
if (left < zero) return [];
if (left === zero) {
next_results.push(list2);
results = results.concat(next_results);
return results;
} else {
let newr = test(left, list2, i, collection);
if (newr.length) {
next_results = next_results.concat(newr);
}
}
}
return results;
}
//Start point
test(target, [], zero, list);
结果:
[ { Combinations: [ 2, 2, 2, 2, 2 ] }, { Combinations: [ 5, 5 ] } ]
答案 1 :(得分:0)
这是一般的想法。递归函数应返回一个值或在某个条件下调用自身传递值...最终产品将是所有递归迭代后的最终结果
function recursive(v){
if(condition) return recursive(v++);
else return v;
}
var n = recursive(1);