首页 > 解决方案 > 两次呼叫提示问题

问题描述

我无法运行两次提示。我不知道如何将语句底部的 let 语句与 var options = passwordOptions(); 无需运行两次提示。

function generatePassword() {
  var options = passwordOptions();
  var result = []
  var possible = []
  var guaranteed = []
  var password = ""

  if(options.specialCharacters){
    possible = possible.concat(specChar)
    guaranteed.push(getRandom(specChar))
    password+= getRandom(specChar)
  }

  if(options.lowerCaseChar){
    possible = possible.concat(lowerCase)
    guaranteed.push(getRandom(lowerCase))
    password+= getRandom(lowerCase)
  }

  if(options.upperCaseChar){
    possible = possible.concat(upperCase)
    guaranteed.push(getRandom(upperCase))
    password+= getRandom(upperCase)
  }

  if(options.numChar){
    possible = possible.concat(numbers)
    guaranteed.push(getRandom(numbers))
    password+= getRandom(upperCase)
  }


  let passwordLength = passwordOptions().passwordLength
  while(password.length < passwordLength) {
    password+=guaranteed[Math.floor(Math.random() * guaranteed.length)]
  }
  return password;
}

function getRandom(arr) {
  var randomIndex = Math.floor(Math.random() * arr.length)
  var randomElement = arr[randomIndex]

  
  return randomElement;
}

标签: javascript

解决方案


推荐阅读