我正在开发一个递归算法,它接受一个包含三个不同元素的数组(比如说['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;
};
singleSolution
……对不起,我没有表达清楚,但我确实正在寻找使用递归的工作实现。 - zahabba