首页 > 解决方案 > JS 函数没有返回预期的结果

问题描述

此函数提示用户选择rockpaperscissors并将输入更改为小写。如果用户没有选择上述任何一项,则返回 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;
    }
}

如果我输入石头/纸/剪刀以外的东西,我希望 if 语句能够运行。但是如果我输入石头/纸/剪刀,我希望 else 语句能够运行。

但是,无论如何,else 语句永远不会运行。

标签: javascriptif-statementreturnprompt

解决方案


使用&&代替||,否则条件将始终为真。但更好的是,您可以通过将有效选择放入数组并使用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());


推荐阅读