我正在做的游戏开始时是一堆15-30块石头,并且用户和计算机都拿了石头,直到拿到最后一块石头为止。但是,我需要一个函数来确定用户摄取的宝石数量是否有效,这意味着它小于或等于3且大于0。所以我的函数应该返回true或false,但是当我输入“ 2“,则返回false。这是调用的代码:

var valid = validEntry(stones, stonesTaken);

function validEntry(stones, stonesTaken) {
    if (stones >= stonesTaken) {
        if(stonesTaken <= 3 && stonesTaken > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}


附注-每当结石低于3时,播放器或计算机所能吸收的结石都将超过可用结石,这就是为什么第一个if语句在那里的原因。

最佳答案

那是因为您正在比较字符串:

"19" >= "2" // false


您必须将至少一个变量转换为整数,并假设它们都是字符串:

stones = parseInt(stones, 10);
stonesTaken = parseInt(stonesTaken, 10);

关于javascript - 从函数返回 boolean 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15560924/

10-10 09:30