Javascript 何时将组合追加/推送到数组中?
我目前正在使用此代码从一个数组中生成一个数组,该数组包含10个一组的每个可能的数字组合:Javascript 何时将组合追加/推送到数组中?,javascript,arrays,function,combinations,Javascript,Arrays,Function,Combinations,我目前正在使用此代码从一个数组中生成一个数组,该数组包含10个一组的每个可能的数字组合: var Util = function() { }; Util.getCombinations = function(array, size, start, initialStuff, output) { if (initialStuff.length >= size) { output.push(initialStuff); } else { var
var Util = function() {
};
Util.getCombinations = function(array, size, start, initialStuff, output) {
if (initialStuff.length >= size) {
output.push(initialStuff);
} else {
var i;
for (i = start; i < array.length; ++i) {
Util.getCombinations(array, size, i + 1, initialStuff.concat(array[i]), output);
}
}
}
Util.getAllPossibleCombinations = function(array, size, output) {
Util.getCombinations(array, size, 0, [], output);
}
我试图做的是,如果组合有一个特定的总数,则只向数组中追加/推送/添加组合。我对javascript有点陌生,我想知道是否有人能告诉我组合在代码中的什么位置被确定并添加到我的数组(输出)
谢谢 通过以下几行将组合添加到结果中:
if (initialStuff.length >= size) {
output.push(initialStuff);
}
如果要添加其他条件,可以将其放在那里:
if (initialStuff.length >= size) {
if (someOtherTest(initialStuff)) {
output.push(initialStuff);
}
}
请注意,您不想将这两个测试组合到一个测试中
if (initialStuff.length >= size && someOtherTest(initialStuff)) {
output.push(initialStuff);
}
这是因为循环和递归的
else
子句只应在长度测试失败时执行,它不应依赖于其他标准。当initialStuff.length>=size
。。。它就在(大概)你的代码中
if (initialStuff.length >= size && someOtherTest(initialStuff)) {
output.push(initialStuff);
}