在我的代码中,我想循环遍历数组中的所有字符,对于 3 个字符的每种可能的组合,执行以下代码,然后重复,直到达到所有可能的组合
我不知道从哪里开始,如果可以的话请帮忙
这是我的代码,谢谢
var link = 'http://www.roblox.com/UserCheck/DoesUsernameExist?username=';
var swap = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
//get all combinations of 3 objects in the swap array, for each do this:
$.get(link+(the combination of three objects here)).success(function(r) {
if (r['success'] == false) console.log(the combination of three objects here);
});
最佳答案
您将需要一个相当复杂且相对耗时的程序来实现此目的。没有内置函数可以为您执行此操作。我不会为你实现这个功能,因为这会花费我比我愿意花的时间更多的时间,而且这对你来说会很好,甚至很有趣。但这里有一些我的建议。
您将需要实现一个决策树来得出您想要的所有可能的组合或排列。 (如果您不知道组合和排列之间的区别,请先查找一下。)
接下来,研究决策树。决策树将是您的算法做出可能的组合所遵循的过程。简而言之,它将创建许多三元素数组,或三字符字符串。它将以“a”开头。然后,它将分支并为“a”后面可能出现的每个潜在元素创建一个以“a”开头的新数组或字符串。因此,一个决策分支会将“b”放置为第二个字符。另一个分支会将“c”放置为第二个字符,第三个分支会将“d”放置在“a”之后,等等。这些双字符分支中的每一个(每种可能性一个)将依次关闭每个可能的分支每个选项都有其第三个元素。
这通常是通过递归函数完成的,但也可以是迭代的。 (如果您不知道它们的含义,请查阅这些内容。)如果原始数组中有 30 个元素,则 3 的可能排列数将类似于 30^3;取决于您是否允许重复。
如果顺序不重要,组合就是你想要的,这会更容易实现,但仍然是一个相当复杂的算法。
希望这能为您开始谷歌搜索提供足够的帮助。如果您需要,请回来提出更具体的问题。
TL;未编辑
关于javascript - 循环遍历数组中的字符,对于 3 个字符的每种可能的组合运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956970/