javascript - 循环遍历数组中的字符,对于 3 个字符的每种可能的组合运行代码?

标签 javascript jquery

在我的代码中,我想循环遍历数组中的所有字符,对于 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/

相关文章:

javascript - 用薄缓存层覆盖 jQuery 的 $.ajax 是个好主意吗?

javascript - 如何使用 jquery.floathead 创建 float 标题?

c# - 在 asp.net (javascript) 中创建自定义的 "Yes/No"警报框 - 第 2 部分

javascript - ref 不是使用 react 中的箭头函数定义的吗?

javascript - 仅在 CSS 中为嵌套元素选择立即悬停的元素

jquery定义自己的事件?

javascript + jquery ajax : conditional "data" element

jquery - jquery 菜单脚本上的故障动画

javascript在div中移动图像

javascript - 尝试执行使用上下文传递给组件的函数