Javascript 测试所有组合a-z、a-z、0-9
我需要检查所有a-z组合,字符串长度为2。 因此,示例输出为: aa ab 交流电 公元 ae 等等 我一直在尝试使用for循环,但没有成功。这就是我得到的:Javascript 测试所有组合a-z、a-z、0-9,javascript,for-loop,combinations,alphabet,Javascript,For Loop,Combinations,Alphabet,我需要检查所有a-z组合,字符串长度为2。 因此,示例输出为: aa ab 交流电 公元 ae 等等 我一直在尝试使用for循环,但没有成功。这就是我得到的: var length = 2; var password = []; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for(var l = 0; l < length; l++) { for(var c =
var length = 2;
var password = [];
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for(var l = 0; l < length; l++)
{
for(var c = 0; c < 62; c++)
{
password[c] = possible.charAt(c);
document.getElementById("code").innerHTML = password;
}
}
var长度=2;
var密码=[];
var-mablue=“ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789”;
对于(变量l=0;l
这对你有用吗
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for(var x of possible){
for(var y of possible){
console.log(x+y);
}
}
var长度=2;
var-mablue=“ABCDEFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789”。拆分(“”);
控制台日志(联合收割机(长度));
功能组合(长度、级别、上一个)
{
风险等级=等级| | 1;
var previous=previous | |可能;
var-ret=[];
上一页地图(功能(el){
可能。映射(函数(字母){
返回推送(el+字母);
});
});
如果(标高<长度-1)ret=联合收割机(长度,标高+1,ret);
返回ret;
}
它返回一个组合数组,但是像这样将它连接到字符串中并不困难
警报([1,2,3])。连接(',')
。它适用于任何长度(当然,这需要越来越多的时间,因为数组中的元素数将等于可能的.length^ length
。对于可能的.length=62
和length=2
有3844个组合。对于length=4
您将使用14776336个组合“终止/挂起”浏览器选项卡).可能是这样的:
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''),
length = 2,
i = 0,
j = 0,
step,
comb;
for (i; i < possible.length; i++) {
step = possible[i];
console.log("==============" + step + "==============");
for (j; j < possible.length; j++) {
comb = step + '' + possible.slice(j, j + (length - 1)).join('');
console.log(comb);
}
j = 0;
}
var-mablue=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzo123456789”。拆分(“”),
长度=2,
i=0,
j=0,
步
梳子;
对于(i;i<可能的.length;i++){
步骤=可能的[i];
console.log(“======================”+步骤+“=========================”);
对于(j;j<可能的长度;j++){
comb=step+''+可能。切片(j,j+(长度-1))。连接('';
控制台日志(comb);
}
j=0;
}
t检查以下内容:
注:不要尝试。:)循环使用2。一个代表第一个字母,一个代表第二个字母。试一试,然后带着你试过的回来。你能展示一下你的尝试吗?嗯,我没走多远,就卡住了。我不想对这样的循环使用两个,因为我希望以后能够更改长度。可能会对您有所帮助。
我不想对这样的循环使用两个
那么递归就是您的方向。
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''),
length = 2,
i = 0,
j = 0,
step,
comb;
for (i; i < possible.length; i++) {
step = possible[i];
console.log("==============" + step + "==============");
for (j; j < possible.length; j++) {
comb = step + '' + possible.slice(j, j + (length - 1)).join('');
console.log(comb);
}
j = 0;
}
var passwords = function(chars, length){
var index=[];
chars = chars.split("");
(function loop(base, i){
for(var k=0; k< chars.length; k++) {
if(i>1) loop(base+chars[k], i-1);
else index.push(base+chars[k]);
}
})("", length);
return index;
}
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var length = 2;
passwords(possible, length);
var libraryOfBabel = passwords("abcdefghijklmnopqrstuvwxyz ,.", 1312000);