从函数返回布尔值

时间:2013-03-22 00:57:08

标签: javascript function boolean

我正在制作一个以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;
    }
}

P.S .--每当石头进入三岁以下时,玩家和计算机都可以获得比现有石头更多的石头,这就是为什么第一个if语句就在那里。

2 个答案:

答案 0 :(得分:1)

那是因为你在比较字符串:

"19" >= "2" // false

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

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

答案 1 :(得分:0)

确保传递整数值或仅使用parseInt()作为评论中提到的@Jared Farrish。

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