【问题标题】:JavaScript: Is it possible to create an array, with multiple values for each array element?JavaScript:是否可以创建一个数组,每个数组元素都有多个值?
【发布时间】:2021-06-09 20:55:29
【问题描述】:

免责声明:我对 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"),

我的目标是能够将其作为全局数组引用,并从那里创建一个函数来随机化数组内的值并返回新生成的密码。 我不是要求任何人做这个我只是想知道这种思路是否可行。

【问题讨论】:

  • 您可以将其他数组作为值。
  • 你的数组不是数组[ { numbers: ("0", ( 不是数组。目前尚不清楚为什么您在对象周围有 []。
  • 我添加了指向我的数组的屏幕截图的链接,我只是不知道是否可以使用数组中列出的内容为密码生成随机字符串。或者我应该将每个数组元素(即:specChar)放入它们各自的数组中并单独引用它们。再次,我对此很陌生,所以如果这没有太多意义,我深表歉意

标签: javascript arrays function


【解决方案1】:

您实际上拥有它,但 () 在 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)]

【讨论】:

  • 非常感谢!这正是我的想法,我还没有了解数组字典,但这是一个很棒的概念。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多