返回resursive函数的结果

时间:2017-09-17 14:09:38

标签: jquery

我有一个递归函数,需要知道它什么时候完成,所以我可以返回最新的结果;

让召唤结果增长。

我需要它只在它成长后才返回它。

2 个答案:

答案 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);