【发布时间】:2014-11-07 17:21:44
【问题描述】:
我正在尝试创建一个函数,列出所有可能的重复变化。 我所做的返回“递归过多”。
function variants(amount, chars, junk){
var junkarray = junk.split(",");
var newjunk;
if(junkarray[junkarray.length-1]==amount){
newjunk = ",";
}
if(junk.length==Math.pow(chars.length, amount)){
console.log(junk);
return;
}else{
for(var i = 0; i < chars.length; i++){
variants(amount, chars, junk+newjunk+chars[i]);
}
}
}
variants(3, ["1", "2"],"");
【问题讨论】:
-
你的 sn-p 让我的标签崩溃了。我认为你应该删除它
-
:D 是的,你是一个专业的tabcrasher。如果它抛出“太多递归”,为什么要制作一个可运行的 sn-p?
-
你能解释一下预期的输入/输出应该是什么吗?
-
由于此代码不起作用,您能描述一下预期的输出吗? “所有可能的重复变化”有点太模糊了。
-
您是否尝试返回类似 ["1,1,1", "1,1,2", "1,2,1", "1,2,2", "2 ,1,1", "2,1,2", "2,2,1", "2,2,2"]?
标签: javascript recursion combinatorics