【发布时间】:2019-06-05 20:11:31
【问题描述】:
我正在尝试为自己编写一个扑克计算器,并且我有一个深度为 5 级的 for 循环。
为此,我一个接一个地嵌套了 for 循环。我正在寻找一种方法来简单地使用 1 个循环(或函数),它可以告诉我想要深入多少层。对于此示例,答案是 5,但对于其他示例,它可能是一个更高(更高)的数字,这会很麻烦。我认为递归是一种方法,我只是不知道如何设置它(不太了解递归)。感谢您的帮助,非常感谢。
for(var i=0; i < deck.length; i++){
for(var j=i+1; j<deck.length; j++){
for(var k=j+1; k<deck.length;k++){
for(var m=k+1; m<deck.length;m++){
for(var n=m+1; n<deck.length;n++){
combo = deck[i];
combo += deck[j];
combo += deck[k];
combo += deck[m];
combo += deck[n];
bighands.push(combo);
}
}
}
}
}
它有效,我只是想要一种更好/更通用的方法。
【问题讨论】:
-
您正在寻找递归,例如 DFS。
-
Currying 将是另一种有趣的方式来实现这一点,并使用更实用的方法。
-
检查 stackoverflow.com/questions/4683539/… 我没有结束这个问题,因为它不是 100% 重复的
标签: javascript arrays data-structures recursive-datastructures array-algorithms