gpt4 book ai didi

JavaScript 逻辑运算符问题?

转载 作者:行者123 更新时间:2023-11-28 19:44:34 25 4
gpt4 key购买 nike

我只是不明白&&和||如何工作。我写了一个小代码来帮助自己,但它对我来说没有任何意义。您将单击一个按钮,然后将调用 startGame()。

var startGame = function() {
var quizAnswers = {
name: prompt("What is your name?").toUpperCase(),
age: prompt("What is your age?"),
snack: prompt("What is your favorite type of snack out of the following: ice cream, apple, chips, cookies?").toUpperCase()
};

quizAnswers.confirmAge = function () {
while (isNaN(this.age) === true) {
this.age = prompt("The age that you entered- " + this.age + " -is not a number. Please enter a number.");
};
};

quizAnswers.confirmAge();

quizAnswers.confirmSnack = function () {
while ((this.snack !== "ICE CREAM") && (this.snack !== "APPLE") && (this.snack !== "CHIPS") && (this.snack !== "COOKIES")) {
this.snack = prompt("The snack you entered- " + this.snack + " -is unrecognized. Please enter: ice cream, apple, chips, or cookies.").toUpperCase();
};
};

quizAnswers.confirmSnack();

它将获取姓名、年龄和最喜欢的零食,然后检查年龄是否是数字以及输入的零食是否是列出的选项之一。在搞乱了confirmSnack函数中的while循环之后,我弄清楚了如何让它工作,如上面所示。但为什么是 && 而不是 || 。有没有办法缩短它,例如:

while (this.snack !== ("ICE CREAM" && "APPLE" && "CHIPS" && "COOKIES")) {
this.snack = prompt("The snack you entered- " + this.snack + " -is invalid. Please enter: ice cream, apple, chips, or cookies.").toUpperCase();
};

所以问题是解释为什么使用 &&(and) 而不是 ||(or) 以及是否有办法缩短这段代码,这样我就不必输入“this.snack !==”四次。我不是专家,所以请尽量保持简单。

最佳答案

&& 运算符工作得很好。这实际上是一个逻辑问题,而不是javascript问题。

您提出问题时,答案与所有​​可能的答案都不同。

可以用 || 重写它如下:

while (!(this.snack == "ICE CREAM" || this.snack == "APPLE" || this.snack == "CHIPS" || this.snack == "COOKIES"))

注意开头的 ! 运算符。

更短的书写形式是:

answers = ["ICE CREAM", "APPLE", "CHIPS", "COOKIES"];
while (answers.indexOf(this.snack) < 0) { ... }

您可以在此处定义您想要接受的可能答案列表,并检查答案是否在其中。

关于JavaScript 逻辑运算符问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com