【问题标题】:How can I make my conditionals working in this JavaScript piece of code?如何使我的条件在这段 JavaScript 代码中工作?
【发布时间】:2020-05-31 01:08:46
【问题描述】:

我正在编写一些 JavaScript 代码作为我创建密码生成器应用程序的作业的一部分,我决定将我应该向用户提出的所有问题都放在一个函数中。生成密码的标准之一是选择 8 到 128 之间的字符数。我想确保用户输入正确的数字,否则函数会重新启动并且不会让用户看到其余的确认框直到他输入所需的数字,所以我这样写:

function askQuestions() {
  let numOfChracaters = +prompt("Choose the number of characters for your password (between 8 and 128)");
  console.log(numOfChracaters);
  if (numOfChracaters >= 8 || numOfChracaters <= 128) {
    let hasUppercase = confirm("Do you want your password to include uppercase letters?");
    let hasLowercase = confirm("Do you want your password to include lowercase letters?");
    let hasNumber = confirm("Do you want your password to include numbers?");
    let hasSpecialCharacters = confirm("Do you want your password to include special characters?");

    let prefrencesArray = [numOfChracaters, hasUppercase, hasLowercase, hasNumber, hasSpecialCharacters];
    return prefrencesArray;
  } else {
    askQuestions();
  }
} 

但由于某种原因,它不起作用,仍然允许用户输入他们想要的任何数字。任何想法我在这里做错了什么?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    你犯了一个有趣的错误。每个数字都是 >= 8

    您要查找的是&amp;&amp; 运算符,因为双方需要同时为真。

    【讨论】:

    • 是的,可爱的虫子:D
    • @RoboRbook 可爱的虫子,哈哈:D
    【解决方案2】:

    替换条件
    numOfChracaters &gt;= 8 || numOfChracaters &lt;= 128

    numOfChracaters &gt;= 8 &amp;&amp; numOfChracaters &lt;= 128

    【讨论】:

      【解决方案3】:

      您可以使用无限循环运行直到满足要求

      let numOfChracaters = 0;
      while(numOfChracaters < 8) {
        numOfChracaters = +prompt("Choose the number of characters for your password (between 8 and 128)");
      }
      

      【讨论】:

        【解决方案4】:

        if (numOfChracaters &gt;= 8 &amp;&amp; numOfChracaters &lt;= 128)

        因为对于您的 OR (||) 运算符,条件 numOfChracaters (false || true)=> returns true. and (false && true)=> return false

        解释你的错误,这样下次你就不会犯这样的错误了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-23
          • 1970-01-01
          • 2011-05-16
          相关资源
          最近更新 更多