JS 函数没有返回预期的结果
JS function isn't returning the expected result
此函数提示用户选择 rock、paper 或 scissors 和将输入更改为小写。如果用户没有选择以上之一,则返回 If 语句。但如果选择正确,则返回 else 语句。
但是,如果用户输入了适当的响应,则 else 语句不会 运行。
function player() {
let pick = prompt("Rock, paper, or scissors?");
pick = pick.toLowerCase();
if ((pick !== 'rock') || (pick !== 'paper') || (pick !== 'scissors')) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
如果我输入 rock/paper/scissors 以外的内容,我希望 if 语句为 运行。但是如果我输入 rock/paper/scissors,我希望 else 语句为 运行.
然而,无论如何,else 语句永远不会 运行s。
用&&
代替||
,否则那里的条件永远为真。但更好的是,您可以通过将有效选择放在数组中并使用 includes
:
来使代码更清晰
const validPicks = ['rock', 'paper', 'scissors'];
function player() {
const pick = prompt("Rock, paper, or scissors?").toLowerCase();
if (!validPicks.includes(pick)) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
console.log(player());
此函数提示用户选择 rock、paper 或 scissors 和将输入更改为小写。如果用户没有选择以上之一,则返回 If 语句。但如果选择正确,则返回 else 语句。
但是,如果用户输入了适当的响应,则 else 语句不会 运行。
function player() {
let pick = prompt("Rock, paper, or scissors?");
pick = pick.toLowerCase();
if ((pick !== 'rock') || (pick !== 'paper') || (pick !== 'scissors')) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
如果我输入 rock/paper/scissors 以外的内容,我希望 if 语句为 运行。但是如果我输入 rock/paper/scissors,我希望 else 语句为 运行.
然而,无论如何,else 语句永远不会 运行s。
用&&
代替||
,否则那里的条件永远为真。但更好的是,您可以通过将有效选择放在数组中并使用 includes
:
const validPicks = ['rock', 'paper', 'scissors'];
function player() {
const pick = prompt("Rock, paper, or scissors?").toLowerCase();
if (!validPicks.includes(pick)) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
console.log(player());