【发布时间】:2015-08-01 03:37:29
【问题描述】:
我正在研究一种递归算法,它接收一个包含三个不同元素的数组(比如['a', 'b', 'c'] 并返回一个二维数组,其中包含允许重复的所有可能变化(所以[['a', 'a', 'a'], ['a', 'a', 'b'], ['a', 'b', 'b'],...])。但是我的代码失败了,我不知道为什么。
var abc = function () {
var holdingArr = [];
var threeOptions = ["a", "b", "c"];
var singleSolution = [];
var recursiveABC = function(arr) {
if (singleSolution.length > 2) {
holdingArr.push(singleSolution);
singleSolution = [];
return;
}
for (var i=0; i < arr.length; i++) {
recursiveABC(arr.slice(i+1));
}
};
recursiveABC(threeOptions);
return holdingArr;
};
【问题讨论】:
标签: javascript arrays algorithm recursion permutation