Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 随机密码生成器concat数组_Javascript_Arrays - Fatal编程技术网

Javascript 随机密码生成器concat数组

Javascript 随机密码生成器concat数组,javascript,arrays,Javascript,Arrays,我无法将用户选择的字符集合并到数组中。记录的是第一个数组,然后是第一个数组+第二个数组,然后是1&2+3等。。。稍后当我调用该函数时,我就有了它,因此如果没有选择任何内容,它会发出警报并返回null,并且该部分至少可以工作,但我不确定如何修复检索选中的字符集的问题 var charset = { lowerCase: { checked: false, charset: ["a", "b", "c", "d", "e", "f", "g", "h", "i"

我无法将用户选择的字符集合并到数组中。记录的是第一个数组,然后是第一个数组+第二个数组,然后是1&2+3等。。。稍后当我调用该函数时,我就有了它,因此如果没有选择任何内容,它会发出警报并返回null,并且该部分至少可以工作,但我不确定如何修复检索选中的字符集的问题

    var charset = {
   lowerCase: {
      checked: false,
      charset: ["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"]
   },
   upperCase: {
      checked: false,
      charset: ["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: {
      checked: false,
      charset: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
   },
   specialChar: {
      checked: false,
      charset: ["!", "#", "$", "%", "&", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "@", "[", "\"", "]","^", "_", "`", "{", "|", "}", "~", "\\"]
   }
}

// password length set
function lengthInput(num) {
   if (num >= 8 && num <= 128) {
      console.log(num)
      return num
   }
   else {
   alert("Please enter a number between 8 and 128")
   return null
   }
}

//create array of all enabled charsets
function getChars () {
   var result = [];
   for (key in charset) {
      if (numbers.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (upperCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (lowerCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (specialChar.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
   }
   return result
};

您遇到的问题是由于concat方法造成的。根据以下定义:

定义和用法
concat()
方法用于连接两个或多个数组

此方法不会更改现有数组,但会返回一个新数组,其中包含已联接数组的值

现在,您要做的是重新设计连接的数组以返回结果

//create array of all enabled charsets
function getChars () {
   var result = [];
   Object.keys(charsets).forEach(function(charsetType) {
     let charset = charsets[charsetType];
     if(charset.checked) {
       result = result.concat(charset.charset);
     }
   });
   return result
};

您遇到的问题是由于concat方法造成的。根据以下定义:

定义和用法
concat()
方法用于连接两个或多个数组

此方法不会更改现有数组,但会返回一个新数组,其中包含已联接数组的值

现在,您要做的是重新设计连接的数组以返回结果

//create array of all enabled charsets
function getChars () {
   var result = [];
   Object.keys(charsets).forEach(function(charsetType) {
     let charset = charsets[charsetType];
     if(charset.checked) {
       result = result.concat(charset.charset);
     }
   });
   return result
};
我想

//create array of all enabled charsets
function getChars () {
   var result = [];
   for (key in charset) {
      if (numbers.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (upperCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (lowerCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (specialChar.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
   }
   return result
};
应改为

//create array of all enabled charsets
function getChars () {
   var result = [];
   for (key in charset) {
      if (charset[key].checked == true) {
         result = result.concat(charset[key].charset);
         console.log(result);
      }
   }
   return result
};
以下是我的总测试代码:

var字符集={
小写:{
勾选:假,
字符集:[“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”]
},
大写:{
勾选:假,
字符集:[“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”]
},
特别卡:{
勾选:假,
字符集:[“!”、“#”、“$”、“%”、“&”、“(“,”)、“*”、“+”、“、”、“-”、“、”、“/”、“:”、“;”、“?”、“@”、“[”、“\”、“]、“^”、“\u”、“`、“{”、“\”、“}、“~”、“\”]
}
}
//密码长度集
函数长度输入(num){
如果(num>=8&&num我认为

//create array of all enabled charsets
function getChars () {
   var result = [];
   for (key in charset) {
      if (numbers.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (upperCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (lowerCase.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
      if (specialChar.checked == true) {
         result += result.concat(charset[key].charset);
         console.log(result);
      }
   }
   return result
};
应改为

//create array of all enabled charsets
function getChars () {
   var result = [];
   for (key in charset) {
      if (charset[key].checked == true) {
         result = result.concat(charset[key].charset);
         console.log(result);
      }
   }
   return result
};
以下是我的总测试代码:

var字符集={
小写:{
勾选:假,
字符集:[“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”]
},
大写:{
勾选:假,
字符集:[“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”]
},
特别卡:{
勾选:假,
字符集:[“!”、“#”、“$”、“%”、“&”、“(“,”)、“*”、“+”、“、”、“-”、“、”、“/”、“:”、“;”、“?”、“@”、“[”、“\”、“]、“^”、“\u”、“`、“{”、“\”、“}、“~”、“\”]
}
}
//密码长度集
函数长度输入(num){

如果(num>=8&&num您正在尝试实现什么?如果您尝试检查密码强度,则通过常规表达式很容易实现。您是否正在尝试检查密码强度@katie@NithinChandran不,我只是尝试创建和数组的选定字符集,所以现在我可以创建和数组的基础上选定的字符集,但数组y重复自身,返回的数组长度至少为104个字符。如果继续单击“生成”,则数组长度将以指数形式增加。如果您尝试检查密码强度,则可以通过常规表达式轻松实现。是否尝试检查密码强度@katie@NithinChandran不,我是just正在尝试创建所选字符集的和数组,因此现在我可以基于所选字符集创建和数组,但数组本身会重复,返回的数组长度至少为104个字符。如果继续单击“生成”,则数组长度会以指数方式增加