如何在JavaScript中减去两个东西。。。?

如何在JavaScript中减去两个东西。。。?,javascript,Javascript,我正在做一个游戏,我需要扣除正确的分数。我的这句话不起作用 -=然后-?让我们给变量赋值。假设playerPower为10,onGrass为2,passengerBayPower为4。你可能期望答案是10-2-4=4,对吗?错了 playerPower -= onGrass - passengerBayPower 对应于 playerPower = playerPower - (onGrass - passengerBayPower) = playerPower - o

我正在做一个游戏,我需要扣除正确的分数。我的这句话不起作用


-=然后-?

让我们给变量赋值。假设
playerPower
为10,
onGrass
为2,
passengerBayPower
为4。你可能期望答案是
10-2-4=4
,对吗?错了

playerPower -= onGrass - passengerBayPower
对应于

playerPower = playerPower - (onGrass - passengerBayPower)
            = playerPower - onGrass + passengerBayPower
                                // ^^^ using basic mathematics
这意味着你得到了
10-2
+
4=12

要修复此问题,请使用
onGrass+passengerBayPower
,或将
passengerBayPower
一起删除,并将其扔到末尾:

playerPower -= passengerBayPower;

因为这在所有情况下都很常见。

您可以通过以下方式简化它:

var color = map[row][cell];
var diff = 0;
    console.log(color);
    if (color == "g") {
        alert("Green");
        diff = onGrass - passengerBayPower
    } else if (color == "b") {
        alert("Brown");
        diff = onRock - passengerBayPower
    } else if (color == "w") {
        alert("White");
        diff = onIce - passengerBayPower
    }
    playerPower -= diff;

我不知道头顶上的关联性,但添加一些括号可能会有所帮助。正如Joe所说,如果用括号括住减法,它应该会起作用。不会--某些东西变成+?:)或者在右侧使用
+
x=25
x-=10-5在我的浏览器控制台中运行良好。正确答案是
25-5=20
。我以为他懂基础数学。我猜我想错了吗?@Paul当你被教导
x-=y
x=x-y
的缩写时,假设
x-=y-z
x=x-y-z
的缩写(没有括号)并不过分,但是。。。是的,XD
var color = map[row][cell];
var diff = 0;
    console.log(color);
    if (color == "g") {
        alert("Green");
        diff = onGrass - passengerBayPower
    } else if (color == "b") {
        alert("Brown");
        diff = onRock - passengerBayPower
    } else if (color == "w") {
        alert("White");
        diff = onIce - passengerBayPower
    }
    playerPower -= diff;