免责声明:我对javascript非常陌生,但这是我的思路,我想创建一个随机密码生成器,并将所有可能的变量存储在一个数组中。例如,我希望数组看起来像这样:
var characters = [
{
numbers: ("0", "1", "2", "3", "4" , "5", "6" , "7", "8", "9"),
specialChar: ("!", "%", "&", ",", "*", "+", "-", ".", "/", "<", ">", "?","~"),
upprCase: ("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"),
lowrCase: ("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"),
我的目标是能够将其引用为全局数组,然后创建一个函数,将数组中的值随机化,并返回新生成的密码。我不是要求任何人来做这件事,我只是想知道这条思路是否可行。
发布于 2021-06-09 14:01:14
您实际上拥有它,但是()
在JavaScript中不工作。您可以使用数组代替。您可以嵌套数组,所以在您的情况下,数组在字典中。
var characters = {
'numbers':["0", "1", "2", "3", "4" , "5", "6" , "7", "8", "9"],
'specialChar':["!", "%", "&", ",", "*", "+", "-", ".", "/", "<", ">", "?","~"],
'upperCase':["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"],
'lowerCase':["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"]
}
在这段代码中,字典(由{}
注意到)用键保存数组。要利用这一点,您可以使用characters['numbers'][0]
获得第一个数字。在您的例子中,您需要随机字符,所以可以使用以下内容
characters['numbers'][Math.floor(Math.random()*10)]
但是,请记住,字典是不被订购的。因此,如果要在数字、特殊字符和字母之间随机选择,可以从数组中随机选择:
choices = ["numbers", "specialChar", "upperCase", "lowerCase"]
chartype = choices[Math.floor(Math.random() * 4)]
然后用这个得到一个随机字符,
characters[chartype][Math.floor(Math.random()*10)]
https://stackoverflow.com/questions/67911594
复制