Javascript 具有显示字符串子集的函数-正在尝试调整代码以处理数组
一些工作代码在底部。但是我上面的代码适应不良,进入了一个无限递归循环。 什么是我不知道的阵列Javascript 具有显示字符串子集的函数-正在尝试调整代码以处理数组,javascript,recursion,subset,Javascript,Recursion,Subset,一些工作代码在底部。但是我上面的代码适应不良,进入了一个无限递归循环。 什么是我不知道的阵列 function recSubsets(soFar, rest) { if (rest===[]) console.log(soFar); else { recSubsets(soFar.push(rest[0])), rest.slice(1)); recSubsets(soFar, rest.slice(1)); } } fu
function recSubsets(soFar, rest)
{
if (rest===[]) console.log(soFar);
else
{
recSubsets(soFar.push(rest[0])), rest.slice(1));
recSubsets(soFar, rest.slice(1));
}
}
function listSubsets(s)
{
recSubsets([],s);
}
listSubsets([4,9,3,77])
下面是字符串的工作版本
function recSubsets(soFar, rest)
{
if (rest==="") console.log(soFar);
else
{
recSubsets(soFar+rest[0], rest.substring(1));
recSubsets(soFar, rest.substring(1));
}
}
function listSubsets(s)
{
recSubsets("",s);
}
listSubsets("cat")
给我:
猫
ca
计算机断层扫描
C
在
A.
我发现了两个问题-
function recSubsets(soFar, rest)
{
if (rest.length===0) console.log(soFar);
else
{
var newSoFar = soFar.slice();
newSoFar.push(rest[0]);
recSubsets(newSoFar, rest.slice(1));
recSubsets(soFar, rest.slice(1));
}
}
function listSubsets(s)
{
recSubsets([],s);
}
listSubsets([4,9,3,77])
你能给我们看一下你期望的示例输入的输出吗?我把它添加到了底部。。。我的函数似乎不是将数组当作数组来处理。我不明白为什么不可以。我只是在摆弄着创建一个版本的“newSoFar”,但如果(rest==[])是错误的,我绝对不会想到。谢谢