我正在创建一个随机密码生成器,它运行良好。但是,我注意到当每个 if
语句的条件为真时,我的 generatePassword()
function 并不总是从每个数组中提取。例如:
function generatePassword() {
// The arrays below are the arrays from which my generatePassword function can pull characters.
const lowercase = ["a", "b", "c", "d", "e", "f", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
const 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", "X"];
let charSet = [];
const passLength = prompt("Choose a length for your password. (This should be any amount between 8 and 128 characters.)");
if (!isNaN(passLength) && passLength >= 8 && passLength <= 128) {
const passLc = confirm("Should the password contain lowercase letters?");
if (passLc) {
for(let i = 0; i < lowercase.length; i++) {
charSet.push(lowercase[i]);
}
}
const passUc = confirm("Should the password contain uppercase letters?");
if (passUc) {
for(let i = 0; i < uppercase.length; i++) {
charSet.push(uppercase[i]);
}
}
} else {
prompt("Sorry, that entry is invalid. Please enter a value between 8 and 128.");
}
console.log(charSet);
return password;
}
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
当用户对每个条件的回答为真时,有没有办法确保我的 function 从每个数组中提取?先感谢您!
编辑:为混乱道歉!
charSet
数组是一个空白数组,我用它来编译一个包含所有较小数组索引的数组,然后使用它来提取随机字符。- 据我了解, getRandomInt 的目的是从
charSet
数组中提取randomIndex
常量的随机索引项。
回答1
我想我遇到了一个更简洁的代码来生成密码:
Math.random().toString(36).slice(2, 10)